Sobes.tech
Junior — Middle

Blijft de volgorde van sleutels behouden als je meerdere keren door de Map loopt?

sobes.tech AI

Antwoord van AI

In Go garandeert het type map niet dat de volgorde van de sleutels behouden blijft tijdens iteratie. Bij elke doorloop door een map kan de volgorde van de sleutels verschillen, omdat de interne representatie van de hash-tabel niet gesorteerd is.

Als je de volgorde wilt behouden, bijvoorbeeld de invoegvolgorde, moet je een extra datastructuur gebruiken, zoals een slice van sleutels, en daarop itereren.

Voorbeeld:

m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "b", "c"}

for _, k := range keys {
    fmt.Println(k, m[k])
}

Op deze manier zal de iteratievolgorde stabiel en voorspelbaar zijn.