Sobes.tech
Junior — Middle

Hozzá lehet adni elemeket egy Map-hez, amely még nem lett létrehozva vagy nem kapott kezdeti értékeket?

sobes.tech MI

Válasz az MI-től

Go-ban nem lehet elemeket hozzáadni egy map-hez, ha az nincs inicializálva. Egy map típusú változó deklarálásakor inicializálás nélkül, az értéke nil, és ilyen map-be íráskor futási időben pánik lép fel.

Az elemek hozzáadásához először létre kell hozni egy map-et a make függvény segítségével vagy literál segítségével:

var m map[string]int // m == nil
m["key"] = 1 // pánik: hozzárendelés egy nil map-hez

m = make(map[string]int) // mostmár inicializált
m["key"] = 1 // működik

// vagy közvetlenül inicializálva
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // működik

Tehát, az elemek hozzáadása előtt a map-et létre kell hozni, és nem szabad nil-nek lennie.