我有以下代码会导致奇怪的结果。我不明白为什么:
func main() {
var s = []int{2, 3}
var s1 = append(s, 4)
var a = append(s1, 5)
var b = append(s1, 6)
fmt.Println(s)
fmt.Println(s1)
fmt.Println(a)
fmt.Println(b)
}
这会导致:
[2 3]
[2 3 4]
[2 3 4 6]
[2 3 4 6]
我的问题是:为什么 a 不是 [2 3 4 5] 而是 [2 3 4 6]?我知道附加到 b 会更改 a,但是如何更改。这是一个错误吗,因为我从未直接更改过并且显然我不希望这种情况发生?
人到中年有点甜
相关分类