Junior — Middle
Aké akcie sú povolené s premennou typu Map, ktorá ešte nebola inicializovaná?
sobes.tech AI
Odpoveď od AI
V jazyku Go má premenná typu map predvolenú hodnotu nil, ak nebola inicializovaná.
S nil mapou sú povolené nasledovné operácie:
- Čítanie hodnoty podľa kľúča — vráti nulovú hodnotu typu a príznak, že kľúč neexistuje.
- Kontrola existencie kľúča pomocou
value, ok := map[key].
Nepovolené operácie:
- Zápis (priradenie hodnoty ku kľúču) spôsobí panic.
- Volanie funkcií, ktoré menia mapu (napríklad
delete), nanilmape je bezpečné a nespôsobí panic.
Príklad:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: priradenie do nil mapy
delete(m, "key") // bezpečné, neurobí nič
Na použitie mapy na zápis je potrebné ju inicializovať, napríklad pomocou make:
m = make(map[string]int)
m["key"] = 10 // teraz funguje