slice
切片(Slice)由指针、长度、容量组成,属于引用类型,是一种基于数组的可变长数据类型,与数组array类型关系密切,其中:
1. 指针指向所引用数组的特定元素,该元素为slice的首元素,但不一定是数组的首元素
2.长度(len)为切片的长度
3.容量,从指针指向的数组的位置,到数组最后元素位置的长度
使用append可以向切片添加元素,像slice添加元素,实际上是向slice所引用的数组添加元素,如果对应数组存在空间添加,则直接添加元素,当切片所引用的数组空间已满,无法再添加元素时,则底层,会新建一个匿名数组,并将slice内的元素从旧的数组中copy到新的匿名数组,该匿名数组的大小,为slice的容量*2,slice则指向这个新的匿名数组,同时在数组中添加元素,完成append操作,因此,在使用中,尽量创建大小合适的slice,尽量避免扩容操作(新建匿名数组等)
slice为引用类型,一般不支持比较操作(和nil比较除外)
有疑问加站长微信联系(非本文作者)