Back to questions
Junior — Middle
93
Какие действия допустимы с переменной типа Map, которая еще не была инициализирована?
Companies where asked
Эрливидео
Самокат Тех
Ecom.tech
Answer from AI
sobes.tech AI
В Go переменная типа map по умолчанию имеет значение nil, если она не была инициализирована.
С nil-картой допустимы следующие действия:
- Чтение значения по ключу — вернёт нулевое значение типа значения и флаг отсутствия ключа.
- Проверка наличия ключа с помощью оператора
value, ok := map[key].
Недопустимы операции:
- Запись (присваивание значения по ключу) вызовет panic.
- Вызов функций, изменяющих карту (например,
delete), наnilкарте безопасен и не вызывает panic.
Пример:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: assignment to entry in nil map
delete(m, "key") // безопасно, ничего не делает
Чтобы использовать map для записи, её нужно инициализировать, например, с помощью make:
m = make(map[string]int)
m["key"] = 10 // теперь работает