Sobes.tech
Junior — Middle

Czy można dodawać elementy do Mapy, która jeszcze nie została utworzona lub nie otrzymała wartości początkowych?

sobes.tech AI

Odpowiedź od AI

В Go нельзя добавлять элементы в map, если она не была инициализирована. При объявлении переменной типа map без инициализации она имеет значение nil, и попытка записи в такую map приведёт к панике времени выполнения.

Чтобы добавить элементы, нужно сначала создать map с помощью функции make или инициализировать литералом:

var m map[string]int // m == nil
m["key"] = 1 // panic: assignment to entry in nil map

m = make(map[string]int) // теперь m инициализирована
m["key"] = 1 // работает

// или сразу инициализировать
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // работает

Таким образом, перед добавлением элементов map должна быть создана и не равна nil.