No. Le mappe sono di riferimento per impostazione predefinita.
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("-----------------------")
}
Dal blog Golang-
I tipi di mappa sono tipi di riferimento, come puntatori o sezioni, quindi il valore di m sopra è nullo; non punta a una mappa inizializzata. Una mappa nulla si comporta come una mappa vuota durante la lettura, ma i tentativi di scrivere su una mappa nulla causeranno un panico durante l'esecuzione; non farlo. Per inizializzare una mappa, usa la funzione make incorporata:
m = make(map[string]int)
Link Snippet di codice Gioca con esso.