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
mapdeklarovaná, ale nie je inicializovaná, môže byť priamo pred vložením inicializovaná. - Niekedy je
mapinicializovaná 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.