Sobes.tech
Назад к вопросам
Junior — Middle
94

Какие действия допустимы с переменной типа Map, которая еще не была инициализирована?

Компании, где спрашивали
Эрливидео
Самокат Тех
Ecom.tech

Ответ от нейросети

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 // теперь работает