Slice
创建方法
1 | ints := []int{1, 2} // len=cap |
Slice扩容
256长度之前,2倍,之后则减缓扩容速度,而不是2倍
只要扩容就会更改头元素指针
1 | func main() { |
值传递
当切片通过参数传递,在方法内部append
append不扩容时:底层数组原地写值,但是只会修改函数内副本切片头的 len,原来的数组依然访问不了- 扩容时:新数组写值,指针变化
1 | func main() { |
1 | ints := []int{1, 2} // len=cap |
256长度之前,2倍,之后则减缓扩容速度,而不是2倍
只要扩容就会更改头元素指针
1 | func main() { |
当切片通过参数传递,在方法内部append
append 不扩容时:底层数组原地写值,但是只会修改函数内副本切片头的 len,原来的数组依然访问不了1 | func main() { |