Non. Les cartes sont des références par défaut.
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("-----------------------")
}
Du blog Golang-
Les types de carte sont des types de référence, comme des pointeurs ou des tranches, et donc la valeur de m ci-dessus est nulle; il ne pointe pas vers une carte initialisée. Une map nil se comporte comme une map vide lors de la lecture, mais les tentatives d'écriture sur une map nil provoqueront une panique à l'exécution; ne fais pas ça. Pour initialiser une carte, utilisez la fonction make intégrée:
m = make(map[string]int)
Code Snippet Link Jouez avec.