Heim > Backend-Entwicklung > Golang > Wie kann ich Karten in Go tief kopieren und löschen?

Wie kann ich Karten in Go tief kopieren und löschen?

Patricia Arquette
Freigeben: 2024-12-21 19:00:12
Original
240 Leute haben es durchsucht

How Do I Deep Copy and Clear Maps in Go?

Kopieren und Löschen von Karten in Go

Beim Umgang mit Karten in Go ist es wichtig, die subtilen Nuancen des Kopierens und Löschens zu verstehen. Um eine tiefe Kopie einer Karte zu erstellen und gemeinsame Referenzen zu vermeiden, die zu unbeabsichtigten Änderungen führen könnten, befolgen Sie diese Schritte:

  1. Erstellen Sie eine neue Karte: Weisen Sie eine neue Karte zu um die kopierten Daten zu speichern.

    newMap := make(map[string]aStruct)
    Nach dem Login kopieren
  2. Iterieren Sie über das Original Karte: Durchlaufen Sie jedes Schlüssel-Wert-Paar in der ursprünglichen Karte.

    for k, v := range originalMap {
     // Copy the value into the new map.
     newMap[k] = v
    }
    Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass die neue Karte eine wirklich unabhängige Kopie mit einem eigenen eindeutigen Satz ist von Referenzen. Sobald die Kopie erstellt wurde, können Sie die ursprüngliche Karte sicher löschen, ohne dass dies Auswirkungen auf die neue Kopie hat:

for k := range originalMap {
    delete(originalMap, k)
}
Nach dem Login kopieren

Wenn Sie alternativ eine flache Kopie erstellen möchten (die die zugrunde liegenden Daten gemeinsam nutzt), können Sie diese einfach zuweisen die ursprüngliche Karte zur neuen Karte:

newMap = originalMap
Nach dem Login kopieren

Beachten Sie jedoch, dass sich Änderungen an einer Karte auf die andere auswirken, da sie sich auf dieselbe Datenstruktur beziehen.

Das obige ist der detaillierte Inhalt vonWie kann ich Karten in Go tief kopieren und löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage