Можно ли передать nil map в цикл

«Можно ли передать nil map в цикл» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно передать nil map в цикл, но это приведёт к панике при попытке записи в map. Чтение из nil map безопасно и вернёт нулевое значение для типа элемента.

Пример:

var m map[string]int // nil map

// Чтение безопасно
for k, v := range m {
    fmt.Println(k, v) // Не выполнится, так как map пустая
}

// Запись вызовет панику
m["key"] = 1 // panic: assignment to entry in nil map

Перед использованием map нужно инициализировать её с помощью make:

m := make(map[string]int)
m["key"] = 1 // OK