Sobes.tech
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. Без това операцията ще предизвика грешка по време на изпълнение.