go中的数据结构切片-slice
1.部分基本类型 go中的类型与c的相似,常用类型有一个特例:byte类型,即字节类型,长度为,默认值是0; 1 bytes = [5]btye{'h', 'e', 'l', 'l', 'o'} 变量bytes的类型是[5]byte,一个由5个字节组成的数组。它的内存表示就是连起来的5个字节,就像C的数组。 1.1字符串 字符串在Go语言内存模型中用一个2字长(64位,32位内存布局方式下)的数据结构表示。它包含一个指向字符串数据存储地方的指针,和一个字符串长度数据如下图: s是一个string类型的字符串,因为string类型不可变,对于多字符串共享同一个存储数据是安全的。切分操作 str[i:j] 会得到一个新的2字长结构t,一个可能不同的但仍指向同一个字节序列(即上文说的存储数据)的指针和长度数据。所以字符串切分不涉及内存分配或复制操作,其效率等同于传递下标。 1.2数组 数组类型定义了长度和元素类型。如, [4]int 类型表示一个四个整数的数组,其长度是固定的,长度是数组类型的一部分( [4]int 和 [5]int 是完全不同的类型)。 数组可以以常规的索引方式访问,表达式 s[n] 访问数组的第 n 个元素。数组不需要显式的初始化;数组的零值是可以直接使用的,数组元素会自动初始化为其对应类型的零值。 1 var a [4]int 2 a[0] =