Back to questions
Junior — Middle
88
Можно ли использовать значение nil в качестве итерационного элемента для map в цикле?
Companies where asked
Кадровое агентство BWG
Answer from AI
sobes.tech AI
В 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 работает корректно.