Junior — Middle
Може ли да се добавят елементи към Map, която все още не е създадена или не е получила начални стойности?
sobes.tech AI
Отговор от AI
В Go не е възможно да добавяте елементи към map, ако тя не е инициализирана. При обявяване на променлива от тип map без инициализация, тя има стойност nil, и опитът за запис в такава map ще доведе до паника по време на изпълнение.
За да добавите елементи, първо трябва да създадете map с помощта на функцията make или да я инициализирате с литерал:
var m map[string]int // m == nil
m["key"] = 1 // паника: присвояване на елемент в nil map
m = make(map[string]int) // сега m е инициализирана
m["key"] = 1 // работи
// или директно инициализиране
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // работи
Преди да добавите елементи, map трябва да бъде създадена и да не е nil.