【发布时间】:2021-11-03 03:19:56
【问题描述】:
为什么矩阵也会改变? Go 变量是按值传递或复制的,而不是引用,除非使用指针与值明确指定。有什么不明白的地方吗?
import "fmt"
func main() {
matrix := [][]int{
{100, 20, 30, 10, 11},
{15, 100, 16, 4, 2},
{3, 5, 100, 2, 4},
{19, 6, 18, 100, 3},
{16, 4, 7, 16, 100},
}
var matrix2 [][]int
matrix2 = matrix
matrix2[0][1] = 11111111
fmt.Println(matrix)
fmt.Println(matrix2)
// Output :
[[100 11111111 30 10 11] [15 100 16 4 2] [3 5 100 2 4] [19 6 18 100 3] [16 4 7 16 100]]
[[100 11111111 30 10 11] [15 100 16 4 2] [3 5 100 2 4] [19 6 18 100 3] [16 4 7 16 100]]
}
【问题讨论】:
-
并非如此。我想了解为什么会这样。
标签: go