Junior — Middle
Dans quels cas est-il permis d'effectuer une opération d'insertion dans une Map qui n'a pas encore été initialisée?
sobes.tech IA
Réponse de l'IA
En Go, il est impossible d'effectuer une opération d'insertion dans une map si celle-ci n'a pas été initialisée (c'est-à-dire si elle est nil), car cela entraînerait une panic à l'exécution.
L'initialisation de la map se fait avec la fonction make:
m := make(map[string]int)
ms["key"] = 42 // correct
Si la map est nil, une tentative d'écriture provoquera une panic:
var m map[string]int
m["key"] = 42 // panic : affectation à une entrée dans une map nulle
Exception :
- Si la
mapest déclarée mais non initialisée, elle peut être initialisée juste avant l'insertion. - Parfois, la
mappeut être initialisée dans un constructeur ou une fonction et transmise ensuite.
Ainsi, l'insertion dans une map non initialisée n'est autorisée qu'après son initialisation explicite via make ou l'assignation d'une map déjà existante et initialisée. Sans cela, l'opération entraînera une erreur à l'exécution.