Sobes.tech
Junior — Middle

Peut-on ajouter des éléments à une Map qui n'a pas encore été créée ou n'a pas reçu de valeurs initiales?

sobes.tech IA

Réponse de l'IA

En Go, il est impossible d'ajouter des éléments à une map si elle n'a pas été initialisée. Lors de la déclaration d'une variable de type map sans initialisation, elle a la valeur nil, et toute tentative d'écriture dans cette map entraînera une panique à l'exécution.

Pour ajouter des éléments, il faut d'abord créer une map avec la fonction make ou l'initialiser avec un littéral:

var m map[string]int // m == nil
m["key"] = 1 // panic : affectation à une entrée dans une map nulle

m = make(map[string]int) // maintenant m est initialisée
m["key"] = 1 // fonctionne

// ou initialiser directement
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // fonctionne

Ainsi, avant d'ajouter des éléments, la map doit être créée et ne doit pas être nil.