Sobes.tech
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 map est déclarée mais non initialisée, elle peut être initialisée juste avant l'insertion.
  • Parfois, la map peut ê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.