2 回答

TA貢獻1828條經驗 獲得超4個贊
您需要再次將數組分配給映射。
nbrs0 := n.rebuilt[4] nbrs1 := n.rebuilt[0] nbrs0[2] = 0 nbrs1[1] = 4 n.rebuilt[4] = nrbs0 n.rebuilt[0] = nrbs1
當您分配給 您時,請制作原始數組的副本。因此,更改不會傳播到 map,您需要使用新數組顯式更新映射。nbrsN

TA貢獻1829條經驗 獲得超6個贊
您需要將值重新分配給地圖條目...
package main
import (
"fmt"
"math"
)
type Neighborhood struct {
rebuilt map[uint32][3]uint32 // Facet index vs {neighbor0, neighbor1, neighbor2}
}
func main() {
n := &Neighborhood{
rebuilt: make(map[uint32][3]uint32, 9348),
}
// Populate neighbors with default of UINT32_MAX
for i := uint32(0); i < 3; i++ {
n.rebuilt[i] = [3]uint32{math.MaxUint32, math.MaxUint32, math.MaxUint32}
}
v := n.rebuilt[1]
v[1] = uint32(0)
fmt.Printf("%v\n", v)
fmt.Printf("%v\n", n)
n.rebuilt[1] = v
fmt.Printf("%v\n", n)
}
https://play.golang.org/p/Hk5PRZlHUYc
- 2 回答
- 0 關注
- 103 瀏覽
添加回答
舉報