Junior — Middle
V ktorých prípadoch je bezpečné čítať údaje z Mapy, ktorá ešte nebola explicitne inicializovaná?
sobes.tech AI
Odpoveď od AI
V Go je čítanie z map, ktorá nebola výslovne inicializovaná (t.j. je nil), bezpečné, ale s určitými obmedzeniami.
Ak je map nil, potom:
- Čítanie hodnoty podľa kľúča vracia nulovú hodnotu typu prvku a
falsepri kontrole existencie kľúča. - Zápis (priradenie) do takejto
mapspôsobí panic.
Príklad:
var m map[string]int // m == nil
value, ok := m["key"] // bezpečné, value == 0, ok == false
// m["key"] = 10 // panic: priradenie do nil mapy
Preto je bezpečné čítať z map, ak nie je inicializovaná, ale do nej nie je možné zapisovať. Na zápis je potrebné ju najskôr inicializovať pomocou make.