Sobes.tech
Junior — Middle

V akých prípadoch je povolené vykonať operáciu vloženia do Map, ktorá ešte nebola inicializovaná?

sobes.tech AI

Odpoveď od AI

V jazyku Go nie je možné vykonať operáciu vloženia do map, ak nebola inicializovaná (t.j. je nil), pretože by to viedlo k panike počas behu.

Inicializácia map sa vykonáva pomocou funkcie make:

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

Ak je map nil, pokus o zápis spôsobí paniku:

var m map[string]int
m["key"] = 42 // panika: priradenie do `nil` mapy

Výnimka:

  • Ak je map deklarovaná, ale nie je inicializovaná, môže byť priamo pred vložením inicializovaná.
  • Niekedy je map inicializovaná v konštruktore alebo funkcii a odovzdaná ďalej.

Preto je vkladanie do neinicializovanej map povolené iba po jej explicitnej inicializácii pomocou make alebo priradení už existujúcej a inicializovanej mapy. Bez toho operácia spôsobí chybu počas behu.