这是我试图在游乐场上运行的代码:http://play.golang.org/p/zX1G50txzf
我有这张地图:
map[producer:Tesla model:Model S year:2015]
我想把它变成这个:
[map[field:producer value:Tesla] map[field:model value:S] map[field:year value:2015]]
但最后我会得到这个:
[map[field:year value:2015] map[field:year value:2015] map[field:year value:2015]]
看起来每次循环遍历原始地图时,我都会复制引用而不是值,所以我最终复制了最后一次值3次,而不是每次复制一次。
我在这里缺少什么?
提前致谢。
答案 0 :(得分:3)
需要在循环的每次迭代中创建新的temp
映射。否则,您只是覆盖相同的地图:
for key, value := range res {
temp := make(map[string]interface{})
// ...
}