go
中slice
由于其类似于一个长度可动态变化的数组而非常方便使用。slice
有两个基本属性:cap
,len
,分别代表容量和已有数据长度。
一般声明slice
的两种方式如下:
1 | //定义了一个初始长度为0,容量为2的int 类型的 `slice` |
往slice
中添加元素使用append
方法:
1 | slice=append(slice,1) |
当然有时也可以使用索引值来直接赋值:
1 | slice[0]=1 |
不过这种方式需要注意的是,索引的值不能大于slice
的容量(cap),否则会报出panic: runtime error: index out of range
错误。所以一般情况下应该优先使用append
的方法给slice
添加元素。
同样,对slice
或者array
进行切片(slice)操作的时候,索引也不能超过当前slice
的容量或者array
的长度
1 | var slice = []int{0, 1, 2, 3, 4, 5, 6} |
slice
的容量扩容规则: 当容量不够时,容量扩充为之前容量的2倍
在调用append
方法给slice
添加元素的时候,可以一次添加多个或者全部:
1 | var slice = []int{0,1} |