slice由一个指向数组的指针/元素个数/切片容量三个字段组成。
可以通过arr := []int{} 格式声明。
也可以通过make关键字创建,第一个参数是类型,第二个参数是元素个数,第三个参数是容量,省略第三个参数则由第二个参数填充第三个参数。
通过append关键字添加元素 arr = append(arr, 1)。
slice复制可以通过copy方法。
slice扩容逻辑:当申请容量超过两倍旧容量时,以申请容量为准;当旧容量小于1024的时候,等于两倍旧容量;当旧容量大于等于1024的时候,增加四分之一的旧容量。
注意:当添加元素超过cap的时候,会新建一个底层数组,把之前元素拷贝过来,原数组不变。


Jeff
1 声望0 粉丝

读书就像吃饭,不记得吃过什么,但长成了骨血和肉