请教一个go切片引用的问题
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 协议》,转载必须注明作者和本文链接
推荐文章: