Sobes.tech
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 map deklarována, ale není inicializována, lze ji přímo před vložením inicializovat.
  • Někdy je map inicializová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.