【发布时间】:2021-08-07 10:43:51
【问题描述】:
我有一个结构内的地图:
type Neighborhood struct {
rebuilt map[uint32][3]uint32 // Facet index vs {neighbor0, neighbor1, neighbor2}
}
我初始化地图:
n := &Neighborhood{
rebuilt: make(map[uint32][3]uint32, 9348),
}
// Populate neighbors with default of UINT32_MAX
for i := uint32(0); i < 9348; i++ {
n.rebuilt[i] = [3]uint32{math.MaxUint32, math.MaxUint32, math.MaxUint32}
}
稍后地图需要更新,但这不起作用:
nbrs0 := n.rebuilt[4]
nbrs1 := n.rebuilt[0]
nbrs0[2] = 0
nbrs1[1] = 4
地图没有实际上是用上面的赋值语句更新的。我错过了什么?
【问题讨论】:
-
你需要重新赋值,或者使用指针改变指向的值。或者使用另一种已经包含指针的类型(切片)。
标签: go