Junior — Middle
Ar galima pridėti elementų į Map, kuris dar nebuvo sukurtas arba nesulaukė pradinių reikšmių?
sobes.tech AI
Atsakymas iš AI
Go kalboje negalima pridėti elementų į map, jei jis nebuvo inicializuotas. Deklaruojant kintamąjį map be inicializacijos, jis turi reikšmę nil, ir bandymas rašyti į tokį map sukels vykdymo klaidą.
Norint pridėti elementus, pirmiausia reikia sukurti map naudodami funkciją make arba jį inicializuoti literale:
var m map[string]int // m == nil
m["key"] = 1 // panika: priskyrimas į `nil` mapą
m = make(map[string]int) // dabar m yra inicializuotas
m["key"] = 1 // veikia
// arba tiesiogiai inicializuoti
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // veikia
Taigi, prieš pridedant elementus, map turi būti sukurtas ir neturi būti nil.