Junior — Middle
Peut-on extraire une valeur d'une carte qui n'a pas encore été initialisée?
sobes.tech IA
Réponse de l'IA
En Go, si une carte (map) n'a pas été initialisée (c'est-à-dire qu'elle est égale à nil), tenter d'en extraire une valeur par clé ne provoquera pas de panic, mais renverra simplement la valeur zéro pour le type de valeur et un drapeau booléen false, indiquant que la clé est absente.
Exemple :
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Affichera : 0 false
Cependant, si vous essayez d'écrire une valeur dans une carte non initialisée, cela provoquera un panic :
m["key"] = 10 // panic : assignment to entry in nil map
Par conséquent, pour utiliser une carte en toute sécurité, vous devez l'initialiser, par exemple avec make :
m = make(map[string]int)
m["key"] = 10 // fonctionne maintenant correctement