請教一個go切片引用的問題

ywmelo發表於2021-12-09
var arr2d [][]int
arr := []int{1, 2}
arr2d = append(arr2d, arr) //[[1,2]]
arr = arr[:len(arr) -1 ] //arr = [1]
arr = append(arr, 3)     //arr = [1,3]
fmt.Println(arr2d)       //[[1,3]]

我的理解是arr是一個切片,對arr做出改變會影響到arr2d的值
在看另一段程式碼

var arr2d [][]int
arr := []int{1, 2}
arr2d = append(arr2d, arr) //[1,2]
arr = append(arr, 3)     //arr = [1,2,3]
fmt.Println(arr2d)       //[[1,2]]

這裡的arr = append(arr, 3)操作為什麼沒影響到arr2d的值呢?

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章