Я пытаюсь скопировать содержимое карты (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)
}
Я также пробовал некоторые динамические вещи, но, очевидно, он выдает ошибку (не может назначить ниль)
aSuperMap[y][x] = aData
Вопрос в том, как я могу создать ассоциативную карту? В PHP я просто использую aSuperMap [y] [x] = aData. Кажется, что у golang нет никакого очевидного метода. Если я удалю delete(aMap, x)
, его ссылка с супер карты также будет удалена. Если я не удалю его, супермаш заканчивается дублирующимися данными. В основном на каждом цикле он получает amap
с новым значением плюс все старые значения.