Junior — Middle
Ce acțiuni sunt permise cu o variabilă de tip Map care nu a fost încă inițializată?
sobes.tech AI
Răspuns de la AI
În Go, o variabilă de tip map are implicit valoarea nil dacă nu a fost inițializată.
Cu o map nil, sunt permise următoarele acțiuni:
- Citirea valorii după cheie — va returna valoarea zero a tipului și un indicator de absență a cheii.
- Verificarea existenței unei chei folosind
value, ok := map[key].
Operațiile nepermise sunt:
- Scrierea (atribuierea unei valori unei chei) va provoca un panic.
- Apelarea funcțiilor care modifică harta (de exemplu,
delete) pe omapnileste sigură și nu provoacă panic.
Exemplu:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: atribuire într-o mapă nil
delete(m, "key") // sigur, nu face nimic
Pentru a folosi o mapă pentru scriere, trebuie să fie inițializată, de exemplu, cu make:
m = make(map[string]int)
m["key"] = 10 // acum funcționează