Junior — Middle
Kan je een waarde uit een kaart halen die nog niet geïnitialiseerd is?
sobes.tech AI
Antwoord van AI
In Go, als een map (kaart) niet geïnitialiseerd is (d.w.z. gelijk is aan nil), zal een poging om een waarde op te halen met een sleutel geen panic veroorzaken, maar gewoon de nulwaarde voor het waarde-type en een booleaanse vlag false teruggeven, wat aangeeft dat de sleutel afwezig is.
Voorbeeld:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Zal afdrukken: 0 false
Echter, als je probeert een waarde toe te wijzen aan een niet-geïnitialiseerde map, zal er een panic optreden:
m["key"] = 10 // panic: assignment to entry in nil map
Daarom moet je een map initialiseren om deze veilig te gebruiken, bijvoorbeeld met make:
m = make(map[string]int)
m["key"] = 10 // werkt nu correct