Junior — Middle
Quelle est la différence entre une carte avec une valeur nulle et une tranche contenant une valeur nulle?
sobes.tech IA
Réponse de l'IA
En Go, une carte (map) avec une valeur nulle est une carte qui n'est pas initialisée et est égale à nil. Tenter d'écrire dans une telle carte entraînera une panique.
Une tranche avec une valeur nulle est une tranche nil, qui ne pointe pas vers un tableau et a une longueur et une capacité de 0. Elle peut être utilisée en toute sécurité, par exemple, pour la lecture ou la transmission à des fonctions.
Différences clés:
- map == nil signifie que la carte n'est pas initialisée et ne peut pas accepter d'éléments.
- slice == nil signifie que la tranche est vide et ne pointe pas vers un tableau, mais peut être utilisée pour la lecture (elle sera vide) et la transmission.
Exemple:
var m map[string]int // m == nil
// m["key"] = 1 // panic : affectation à une entrée dans une carte nil
var s []int // s == nil
fmt.Println(len(s)) // 0
s = append(s, 1) // maintenant la tranche est initialisée
Ainsi, une carte nil n'est pas adaptée à l'écriture, et une tranche nil est sûre pour la lecture et l'extension.