Standardmäßig werden keine Karten referenziert.
package main
import "fmt"
func mapToAnotherFunction(m map[string]int) {
m["hello"] = 3
m["world"] = 4
m["new_word"] = 5
}
func main() {
m := make(map[string]int)
m["hello"] = 1
m["world"] = 2
for key, val := range m {
fmt.Println(key, "=>", val)
}
fmt.Println("-----------------------")
mapToAnotherFunction(m)
for key, val := range m {
fmt.Println(key, "=>", val)
}
fmt.Println("-----------------------")
}
Vom Golang Blog-
Kartentypen sind Referenztypen wie Zeiger oder Slices. Daher ist der Wert von m oben gleich Null. Es zeigt nicht auf eine initialisierte Karte. Eine Null-Map verhält sich beim Lesen wie eine leere Map, aber Versuche, in eine Null-Map zu schreiben, verursachen eine Laufzeit-Panik. tu das nicht Verwenden Sie zum Initialisieren einer Karte die integrierte Funktion make:
Code Snippet Link Spielen Sie damit.