- 数组
数组定义格式示例:
var a [2]intfmt.Println(a)b := int{,3}b)
输出:
[0 0]
[2 3]
还可以省略数组长度,编译器自动推算:
a [...]5678}
还可以使用索引初始化:
输出:
var a [2]intfmt.Println(a)b := int{,3}b)
a [...]5678}
需要注意的是,数组长度也是数组类型的一部分,因此长度不同的数组类型也就不同数组在Go中为值类型,即给传递数组变量的时候是全复制,如果想传递引用,将使用Go特有类型:slice,后面会讲到数组可以用==或!=来比较可以使用new创建数组,此时返回的是数组指针:new([10)
底层就是数组,多个slice可以在底层可以指向同一个数组可以指定初始长度和容量,注意长度和容量概念不同,长度是指该slice用于存放数据的数组长度,容量是底层数组分配连续内存的总长度。当给slice append元素,使得长度超出容量的时候,Go会再创建一个容量为当前容量两倍的新数组,并将数据拷贝进去。