Sobes.tech
Junior — Middle

Quelles actions sont autorisées avec une variable de type Map qui n'a pas encore été initialisée?

sobes.tech IA

Réponse de l'IA

En Go, une variable de type map a une valeur par défaut de nil si elle n'a pas été initialisée.

Avec une map nil, les actions suivantes sont possibles :

  • Lire une valeur par clé — renverra la valeur zéro du type et un indicateur d'absence de clé.
  • Vérifier la présence d'une clé avec l'opérateur value, ok := map[key].

Les opérations suivantes ne sont pas autorisées :

  • L'écriture (assignation d'une valeur à une clé) provoquera un panic.
  • Appeler des fonctions modifiant la carte (par exemple, delete) sur une map nil est sûr et ne provoque pas de panic.

Exemple :

var m map[string]int // m == nil

v, ok := m["key"] // ok == false, v == 0

// m["key"] = 10 // panic : assignation à une entrée dans une map nil

delete(m, "key") // sûr, ne fait rien

Pour utiliser une map pour l'écriture, il faut l'initialiser, par exemple avec make :

m = make(map[string]int)
m["key"] = 10 // fonctionne maintenant