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 unemapnilest 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