go 数组 new ()
arr1 := [5]int
arr1x := arr1 //值传递
arr1x[0] = 100
fmt.Println(arr1, arr1x)
//输出: [0 0 0 0 0] [100 0 0 0 0]
//arr1 不变
arr2 := new([5]int)
arr2x := arr2 //地址传递
arr2x[0] = 200
fmt.Println(arr2, arr2x)
//输出 : &[200 0 0 0 0] &[200 0 0 0 0]
//arr2 被改变
arr3 := *arr2 //地址传递加上* 相当于值传递了
arr3[1] = 300
fmt.Println(arr2, arr2x)
//输出: [200 300 0 0 0] &[200 0 0 0 0]
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: