Junior — Middle
Jaké akce jsou povolené s proměnnou typu Map, která ještě nebyla inicializována?
sobes.tech AI
Odpověď od AI
V jazyce Go má proměnná typu map výchozí hodnotu nil, pokud nebyla inicializována.
S nil mapou jsou povolené následující operace:
- Čtení hodnoty podle klíče — vrátí nulovou hodnotu typu a příznak, že klíč neexistuje.
- Kontrola existence klíče pomocí
value, ok := map[key].
Nepovolené operace:
- Zápis (přiřazení hodnoty ke klíči) způsobí panic.
- Volání funkcí, které mění mapu (například
delete), nanilmapě je bezpečné a nezpůsobí panic.
Příklad:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: přiřazení do nil mapy
delete(m, "key") // bezpečné, nedělá nic
Pro použití mapy pro zápis je nutné ji inicializovat, například pomocí make:
m = make(map[string]int)
m["key"] = 10 // nyní funguje