Wie kopiere ich eine Karte?

Ich versuche den Inhalt einer Karte zu kopieren (amap ) in einem anderen (aSuperMap) und dann klaramap damit es bei der nächsten Iteration / Schleife neue Werte annehmen kann. Das Problem ist, dass Sie die Karte nicht löschen könnenohne seine Referenz zu löschen auch in der supermap. Hier ist ein Pseudocode.

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)

}

Ich habe auch ein paar dynamische Sachen ausprobiert, aber es wird offensichtlich ein Fehler ausgegeben (kann nicht nil zugewiesen werden)

aSuperMap[y][x] = aData

Die Frage ist, wie kann ich eine assoziative Karte erstellen? In PHP verwende ich einfach aSuperMap [y] [x] = aData. Es scheint, dass Golang keine offensichtliche Methode hat. Wenn ich löschedelete(aMap, x) Die Referenz aus der Superkarte wird ebenfalls gelöscht. Wenn ich es nicht lösche, endet die Supermap mit doppelten Daten. Grundsätzlich wird es auf jeder SchleifeaMap mit dem neuen Wert plus alle alten Werte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage