Sobes.tech
Junior — Middle

U kojim slučajevima je dozvoljeno izvršiti operaciju umetanja u Mapu koja još nije inicijalizovana?

sobes.tech АИ

Одговор од АИ

U jeziku Go, nije moguće izvršiti operaciju umetanja u map ako ona nije inicijalizovana (tj. ako je nil), jer će to dovesti do panike tokom izvršavanja.

Inicijalizacija map se vrši pomoću funkcije make:

m := make(map[string]int)
ms["key"] = 42 // ispravno

Ako je map nil, pokušaj pisanja će izazvati paniku:

var m map[string]int
m["key"] = 42 // panika: dodela u `nil` mapu

Izuzetak:

  • Ako je map deklarisana, ali nije inicijalizovana, može se inicijalizovati direktno pre umetanja.
  • Ponekad, map se inicijalizuje u konstruktoru ili funkciji i prosleđuje se dalje.

Stoga, umetanje u neinicijalizovanu map je dozvoljeno samo nakon njene eksplicitne inicijalizacije putem make ili dodeljivanjem već postojeće i inicijalizovane map. Bez toga, operacija će izazvati grešku tokom izvršavanja.