Junior — Middle
Peut-on utiliser la valeur nil comme élément d'itération pour map dans une boucle?
sobes.tech IA
Réponse de l'IA
В Go значение nil нельзя использовать как итерационный элемент для map в цикле, потому что range по map возвращает ключ и значение, а nil — это отсутствие значения.
Если значение в map является указателем или интерфейсом, то оно может быть nil, и это нормально. Но сам итератор не может быть nil.
Пример:
m := map[string]*int{
"a": nil,
"b": new(int),
}
for k, v := range m {
if v == nil {
fmt.Printf("ключ %s содержит nil значение\n", k)
} else {
fmt.Printf("ключ %s содержит значение %d\n", k, *v)
}
}
Здесь v может быть nil, но сам цикл range по map работает корректно.