Sobes.tech
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