如题,按我的理解来说append操作在不触发扩容逻辑时是不会修改底层的array指针的,但今天做了一下实验好像并不是这样,有大佬能解答一下嘛?
我的理解里,下面代码的输出结果应该是:3233234,但明显append操作并未影响copySlice。
func main() {
testSlice := make([]int, 0, 8)
testSlice = append(testSlice, 1, 2, 3)
copySlice := testSlice
testSlice[0] = 3
for _, v := range copySlice {
print(v)
}
testSlice = append(testSlice, 4)
for _, v := range copySlice {
print(v)
}
}
copySlice 跟 testSlice 是两个不同的 slice 。
testSlice 里的数组指针变了,并不会影响 copySlice 里的数组指针。
testSlice 的 len 跟 cap 的改变,也不会影响 copySlice 的 len 跟 cap。