切片Slice
其本身并不是数组,它指向底层的数组
作为变长数组的替代方案,可以关联底层数组的局部或全部
为引用类型
可以直接创建或从底层数组获取生成
使用len()获取元素个数,cap()获取容量
一般使用make()创建
如果多个slice指向相同底层数组,其中一个的值改变会影响全部
make([]T,len,cap)
其中cap可以省略,则和len的值相同
len表示存数的元素个数,cap表示容量
扫描二维码关注公众号,回复:
8948941 查看本文章
slice与底层数组的对应关系(下图来自于GO We编程)
Reslice
Reslice时索引以被slice的切片为准
索引不可以超过被slice的切片的容量的cap()值
索引越界不会导致底层数组的重新分配而是引发错误
Append
可以在slice尾部追加元素
可以将一个slice追加在另一个slice尾部
如果最终长度未超过追加到slice的容量则返回原始slice
如果超过追加到的slice的容量则将重新分配数组并拷贝原始数据