Junior — Middle
V jakých případech je povoleno provést operaci vložení do Mapy, která ještě nebyla inicializována?
sobes.tech AI
Odpověď od AI
V jazyce Go nelze provést operaci vložení do map, pokud nebyla inicializována (tedy je nil), protože by to vedlo k panice během běhu.
Inicializace map se provádí pomocí funkce make:
m := make(map[string]int)
ms["key"] = 42 // správně
Pokud je map nil, pokus o zápis způsobí panic:
var m map[string]int
m["key"] = 42 // panic: přiřazení do nil mapy
Výjimka:
- Pokud je
mapdeklarována, ale není inicializována, lze ji přímo před vložením inicializovat. - Někdy je
mapinicializována v konstruktoru nebo funkci a předána dále.
Proto je vkládání do neinicializované map povoleno pouze po její explicitní inicializaci přes make nebo přiřazení již existující a inicializované mapy. Bez toho operace způsobí chybu za běhu.