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