假设我有以下长度为 3 的整数数组:
nums := [3]int{1,2,3}
然后我抓住前两个项目的切片
numSlice := nums[:2]
cap
在这两种情况下调用numSlice 和 nums 都会产生 3,并且len
分别产生 2 和 3。
如果我随后附加到该切片 ( numSlice = append(numSlice, 10)
),则底层数组 ( nums
) 现在是[1 2 10]
. cap
两者都保持为 3,因为切片的底层数组是相同的,切片的 len 现在为 3。
但是,如果我再次附加到该切片 ( numSlice = append(numSlice, 20)
),则该切片的底层数组必须更改 - 我们看到这是cap
现在 numSlice 的两倍并且 len 现在是 4 的情况。
对不起,解释过度了,只是自己走过它,但有人可以向我解释底层数组的幕后情况以及如何获取对新数组的引用吗?
慕田峪4524236
阿晨1998
相关分类