Junior — Middle
Se poate extrage o valoare dintr-un mapă care nu a fost încă inițializată?
sobes.tech AI
Răspuns de la AI
În Go, dacă un map (hartă) nu a fost inițializat (adică, este egal cu nil), încercarea de a extrage o valoare după cheie nu va provoca panic, ci va returna pur și simplu valoarea zero pentru tipul valorii și un flag boolean false, indicând că cheia lipsește.
Exemplu:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Va afișa: 0 false
Totuși, dacă încerci să scrii o valoare într-un map neinițializat, va apărea panic:
m["key"] = 10 // panic: assignment to entry in nil map
De aceea, pentru a folosi în siguranță un map, trebuie să îl inițializezi, de exemplu, cu make:
m = make(map[string]int)
m["key"] = 10 // acum funcționează corect