Sobes.tech
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 map ir deklarēts, bet nav inicializēts, to var tieši inicializēt pirms ievietošanas.
  • Dažreiz map tiek 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.