Comprendre nil
en Go (Golang)
Définition de nil
En Go, nil
est une valeur spéciale qui signifie "absence de valeur" ou "valeur nulle". C’est l’équivalent, dans d’autres langages, de null
ou None
.
Contrairement à des types numériques (int
, float
) ou booléens qui ont toujours une valeur par défaut, certains types en Go peuvent pointer vers quelque chose ou rien du tout. Quand ils ne pointent vers rien, ils valent nil
.
Types qui peuvent être nil
Pointeurs
Un pointeur *T
peut valoir nil
s’il ne référence aucun objet en mémoire.
Slices
Une slice
non initialisée ou "vide" peut être nil
.
Maps
Une map
peut être nil
si elle n’a jamais été allouée (exemple : var m map[string]int
).
Autres types
D’autres types, tels que chan
(pour les channels) ou interface
(pour les interfaces), peuvent également valoir nil
. Nous les étudierons plus tard.