Junior — Middle
Kādās gadījumos ir atļauts veikt ievietošanas operāciju Map, kas vēl nav inicializēta?
sobes.tech AI
Atbilde no AI
Go valodā nav iespējams veikt ievietošanas operāciju map, ja tas nav inicializēts (t.i., ir nil), jo tas izraisīs izpildes laikā paniku.
map inicializācija notiek ar funkcijas make palīdzību:
m := make(map[string]int)
ms["key"] = 42 // pareizi
Ja map ir nil, mēģinājums rakstīt izraisīs paniku:
var m map[string]int
m["key"] = 42 // panika: piešķiršana `nil` mapē
Izņēmums:
- Ja
mapir deklarēts, bet nav inicializēts, to var tieši inicializēt pirms ievietošanas. - Dažreiz
maptiek inicializēts konstruktorā vai funkcijā un tālāk nodots.
Tādēļ ievietošana ne-inicializētā map ir atļauta tikai pēc tās skaidras inicializācijas ar make vai jau esošas un inicializētas map piešķiršanas. Bez tā operācija izraisīs izpildes kļūdu.