Sobes.tech
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.