Sobes.tech
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 false pri kontrole existencie kľúča.
  • Zápis (priradenie) do takejto map spô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.