Junior — Middle
В кои случаи е допустимо да се извърши операция по добавяне в Map, която все още не е инициализирана?
sobes.tech AI
Отговор от AI
В Go не може да се извърши операция по добавяне към map, ако тя не е инициализирана (т.е. е nil), тъй като това ще доведе до паника по време на изпълнение.
Инициализацията на map става с помощта на функцията make:
m := make(map[string]int)
ms["key"] = 42 // правилно
Ако map е nil, опитът за запис ще предизвика паника:
var m map[string]int
m["key"] = 42 // паника: присвояване към `nil` map
Изключение:
- Ако
mapе декларирана, но не е инициализирана, тя може да бъде инициализирана директно преди вмъкването. - Понякога
mapсе инициализира в конструктор или функция и се предава нататък.
Следователно, вмъкването в неинициализиран map е допустимо само след явната ѝ инициализация чрез make или присвояване на вече съществуващ и инициализиран map. Без това операцията ще предизвика грешка по време на изпълнение.