最佳答案
我尝试将映射(amap
)的内容复制到另一个映射(aSuperMap
)中,然后清除 amap
,这样它就可以在下一次迭代/循环中获取新值。
问题是您不能清除超级映射中的映射 而没有清除其参考。
下面是一些伪代码。
for something := range fruits{
aMap := make(map[string]aStruct)
aSuperMap := make(map[string]map[string]aStruct)
for x := range something{
aMap[x] = aData
aSuperMap[y] = aMap
delete(aMap, x)
}
//save aSuperMap
saveASuperMap(something)
}
我还尝试了一些动态的东西,但显然它抛出了一个错误(不能赋值为 nil)
aSuperMap[y][x] = aData
问题是如何创建联想映射?在 PHP 中,我只使用 aSuperMap [ y ][ x ] = aData。看来哥朗没有什么明显的方法。如果我删除 delete(aMap, x)
它的引用从超级地图也被删除。如果我不删除它,超级地图最终会得到重复的数据。基本上,在每个循环中,它得到带有新值和所有旧值的 aMap
。