【发布时间】:2016-06-03 15:36:30
【问题描述】:
我有一个带有复杂键的map - 例如,二维数组:
m := make(map[[2][3]int]int)
当我在地图中插入一个新键时,Go 是否会对该键进行深层复制?
a := [2][3]int{{1, 2, 3}, {4, 5, 6}}
m[a] = 1
换句话说,如果我在将数组a用作映射键后更改它,映射是否仍然包含a的旧值?
【问题讨论】:
-
Go 中的数组是按值传递的(与切片相反,切片是按引用传递的),所以这与
a := 1; m[a] = 1没有什么不同;执行映射分配后,键和变量不相关(除非您更改其中之一,否则它们可能仍然具有相同的值)。
标签: dictionary go key