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.