Go 类型

今天来学习一下Go语言的类型

  下面来介绍一下Go语言的基本类型

  布尔类型:bool            eg: var isOk bool ;isOk=true   isOk:=(1==2) 

  整形:int8 byte int16,int ,uint,initptr 等`注意:int 和int32是两种不同的类型,需要手动转换 v:=12 v默认推到为int类型 value2 = int32(value1)dd默认d

  浮点型:float32 =>float ,float64  =>double 

  复数类型 :complex64,complex128  

    复数实际上由两个实数(在计算机中用浮点数表示)构成,一个表示实部(real),一个表示虚部(imag)  value1 = 3.2 + 12i 

  字符串类型:string  注意:每个中文字符在UTF-8中占3个字节

  字符类型 :rune

  错误类型:error

  下面是Go语言中的复合类型

  指针:pointer

  数组:array  eg:var intArray [10]int;   1000]*float64 指针数组 

    注意1:在GO语言中数组是一个值类型,每传递一个数组都是对该数组的一个copy;

    注意2:数组一旦定义,他的长度就不可改变

  切片:slice

    a: 数组切片的创建  

      1:基于数组    

        var myArray [10]int={1,2,2,3,4,5,6}

        var mySlice []int= myArray[:5] -->代表从0个元素开始,数到第五个元素  1,2,2,3,4

      2:直接创建

        mySlice1 := make([]int, 5)   创建一个元素个数为5的切片,元素初始值为0:

        mySlice1 := make([]int, 5,10)   创建一个元素个数为5,元素初始值为0,容量为10的数组切片

        mySlice3 := []int{1, 2, 3, 4, 5}   直接创建并且初始化

    b:元素遍历

      1:for(i:=0;i<len(array);i++){

          fmt.Print("第"+i+"个数组元素值:"+array[i])

        }

      2:for k,v:=range array{

        fmt.Print("第"+k+"个数组元素值:"+v)

      }

   c:动态增减元素

        mySlice:=make([]int,5,10){1,2,3,4,5}

     添加:mySlice.append(mySlice,7,8,9)

    d:基于数组切片创建数组切片

      mySlice:=make([]int,5,10){1,2,3,4,5}

      mySlice2:=mySlice[1,4]

    e:内容复制

      slice1 := []int{1, 2, 3, 4, 5}
      slice2 := []int{5, 4, 3}
      copy(slice2, slice1) // 只会复制slice1的前3个元素到slice2中
      copy(slice1, slice2) // 只会复制slice2的3个元素到slice1的前3个位置

  字典:map  

     a:变量的声明

      var myMap map[string] string

     b:初始化

      myMap=make(map[string] string)

      myMap=make(map[string] string,100)  //添加了容量

     c:赋值

      myMap["key"]="我的第一个map"

     d:元素的删除

      delete(myMap,"key")

     e:元素的查找

      value, ok := myMap["1234"]
      if ok { // 找到了
        // 处理找到的value
      }

  通道:chan

  结构体:struct

  接口:interface

 

  关于通道 、结构体和接口涉及到Go的高级应用了,后续在学习,今天先到这里了

posted @ 2014-04-16 23:28  Dark_liu  阅读(326)  评论(0编辑  收藏  举报