Junior — Middle
Milyen esetekben megengedett egy Map-be történő beszúrási művelet végrehajtása, amelyet még nem inicializáltak?
sobes.tech MI
Válasz az MI-től
Go nyelvben nem lehet beszúrni egy map-be, ha az nincs inicializálva (azaz, nil), mert ez futás közben pánikot okoz.
A map inicializálása a make függvény segítségével történik:
m := make(map[string]int)
ms["key"] = 42 // helyes
Ha a map nil, akkor az írási kísérlet pánikot okoz:
var m map[string]int
m["key"] = 42 // pánik: hozzárendelés egy nil maphez
Kivétel:
- Ha a
mapdeklarálva van, de nincs inicializálva, akkor közvetlenül az insert előtt inicializálható. - Néha a
map-et konstruktorban vagy függvényben inicializálják, és továbbítják.
Ezért a nem inicializált map-be való beszúrás csak akkor engedélyezett, ha azt kifejezetten make-val vagy már létező és inicializált map-hez rendelték. Ellenkező esetben a művelet futás közben hibát okoz.