Sobes.tech
Junior — Middle

Comment accéder aux valeurs dans un dictionnaire qui n'a pas encore été créé à l'avance?

sobes.tech IA

Réponse de l'IA

En Go, si une carte (map) n’a pas encore été créée (c’est-à-dire qu’elle est égale à nil), tenter d’accéder à ses éléments par clé ne provoquera pas de panic, mais renverra simplement la valeur zéro du type des éléments.

Par exemple :

var m map[string]int // m == nil
fmt.Println(m["key"]) // Affichera 0, ne provoquera pas d’erreur

Cependant, tenter d’assigner une valeur à une carte nil entraînera un panic :

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

Il faut donc s’assurer que la carte est initialisée avant d’y écrire, par exemple :

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

Ainsi, pour la lecture, on peut accéder à une carte nil sans erreur, mais pour l’écriture, il faut d’abord créer la carte.