Junior — Middle
Kokiais atvejais leidžiama atlikti įterpimo operaciją į Map, kuri dar nebuvo inicializuota?
sobes.tech AI
Atsakymas iš AI
Go kalboje nėra galima atlikti įterpimo operacijos į map, jei jis nebuvo inicializuotas (t.y., jei jis yra nil), nes tai sukels klaidą vykdymo metu.
map inicializacija atliekama naudojant funkciją make:
m := make(map[string]int)
ms["key"] = 42 // teisinga
Jei map yra nil, bandymas įrašyti sukels klaidą:
var m map[string]int
m["key"] = 42 // klaida: priskyrimas `nil` mapui
Išimtis:
- Jei
mapyra deklaruotas, bet neįvestas, jis gali būti tiesiogiai inicializuotas prieš įterpiant. - Kartais
mapyra inicializuojamas konstruktoriuje arba funkcijoje ir perduodamas toliau.
Todėl įterpimas į neįvestą map yra leidžiamas tik po jo aiškios inicializacijos naudojant make arba priskiriant jau esamą ir inicializuotą map. Be to, ši operacija sukels klaidą vykdymo metu.