golang切片
1. 切片初始化
make([]Type, length, capacity)
make([]Type, length)
[]Type{value1 , value2 , ... , valueN }
2. 通过切片创建新的切片
refer: https://www.cnblogs.com/sparkdev/p/10704614.html
slice[i:j:k]
其中 i 表示从slice的第几个元素开始切,j 控制切片的长度(j-i),k 控制切片的容量(k-i),如果没有给定 k,则表示切到底层数组的最尾部
buf := make([]int32, 0, 10) //buf初始化,但长度为0
buf2: = buf[1:3:4] //buf2已经初始化, 内容为[]int32{0,0},切片长度为2(3-1), 容量为3(4-1)
buf2[0] = 100 //buf2: []int32{100,0}
3. 切片扩容
append()
当增加元素数量超过切片容量时,append()会在旧切片上产生新切片