等雁归来

Just do it.

导航

Ready go系列之: 类型简介

1.Go语言中有一些通用的类型,例如"int"和"float",它们对应的内存大小和处理器类型相关。同时, 也包含了许多固定大小的类型,例如"int8"和"float64",还有无符号类型"uint"和"uint32"等。 需要注意的是,即使"int"和"int32"占有同样的内存大小,但并不是同一种数据类型。不过 "byte"和"uint8"对应是相同的数据类型,它们是字符串中字符类型,类型之间不存在隐式转换

2. go中的字符串是一个内建数据类型。字符串虽然是字符序列,但并不是一个字符数组。可以创建新的 字符串,但是不能改变字符串。不过我们可以通过新的字符串来达到想改变字符串的目的, Go中的字符串和C++中的"const strings"概念类似,字符串指针则相当于C++中的"const strings" 引用。

3. 数组的声明如下:

          var arrayOfInt [10]int;  //指定大小
          var arrayOfInt [...]int  // 由编译器推测大小
          var arrayOfInt [3]int{1,2.3} //定义且初始化E

  数组和字符串一样也是一个值对象,不过数组的元素是可以修改的。不同于C语言的是:"int"类型数组 "arrayOfInt"并不能转化为"int"指针。组的大小是数组类型的一部分。我们还可以通过slice(切片)类型的变量来访问数组。 如果多个Slices引用同一个数组,则可以共享数组的空间。但是不同数组之间是无法共享内存空间.当需要传递一个数组给函数时,你应该将函数的参数定义为一个Slice。这样,在调用函数的时候, 数组将被自动转换为slice传入。

4. 内建的"len()"函数,可以用在strings, arrays, slices, maps, 和 channels 中,用以判定类型的大小.

posted on 2011-06-25 10:26  等雁归来  阅读(273)  评论(0编辑  收藏  举报