Kopieren eine Map in Go
Dieses Tutorial zeigt, wie Sie eine Map in Go kopieren.
Kopieren eine Map in Go
In Go ist eine Map eine Sammlung von ungeordneten Schlüssel-Wert-Paaren. Es ist beliebt, weil es schnelle Suchen und Werte ermöglicht, die mithilfe von Schlüsseln abgerufen, aktualisiert oder gelöscht werden können.
Da Mapn in Go Referenztypen sind, können Sie den Inhalt einer Map nicht umfassend replizieren, indem Sie eine Instanz einer anderen zuweisen. Sie können eine neue, leere Map erstellen und ihr dann mithilfe einer for-Range-Schleife die entsprechenden Schlüssel-Wert-Paare hinzufügen.
In Go ist es die einfachste und effizienteste Lösung für dieses Problem.
Die geklonte Map ist in dieser Beispielausgabe ein tiefer Klon, und das Hinzufügen zusätzlicher Teile wirkt sich nicht auf die ursprüngliche Map aus.
Beispiel 1:
package main
import "fmt"
func main() {
dark := map[string]int{
"Jay": 1,
"Adam": 2,
"Eve": 3,
}
// copy a map
darkch := make(map[string]int)
for k, v := range dark {
darkch[k] = v
}
darkch["Jonas"] = 4
fmt.Println("Original")
fmt.Println(dark)
fmt.Println("Copied")
fmt.Println(darkch)
}
Ausgabe:
Original
map[Adam:2 Eve:3 Jay:1]
Copied
map[Adam:2 Eve:3 Jay:1 Jonas:4]
In diesem Beispiel ordnen wir den Namen und die Rollennummer der ursprünglichen Map zu.
Beispiel 2:
package main
import (
"fmt"
)
func main() {
studs := map[string]int{
"Jay": 1,
"Adam": 2,
"Eve": 3,
}
studs_tmp := make(map[string]int)
for name, roll_no := range studs {
studs_tmp[name] = roll_no
}
for name, roll_no := range studs_tmp {
fmt.Println("Name: ", name, ", roll_no: ", roll_no)
}
}
Ausgabe:
Name: Jay , roll_no: 1
Name: Adam , roll_no: 2
Name: Eve , roll_no: 3