Sobes.tech
Junior — Middle

Ha többször végigmegyünk a Map-en, megmarad a kulcsok sorrendje?

sobes.tech MI

Válasz az MI-től

Go nyelven a map típus nem garantálja a kulcsok sorrendjének megőrzését iteráció közben. Minden map-en való végigjárásnál a kulcsok sorrendje eltérő lehet, mivel a hash-tábla belső reprezentációja nem rendezett.

Ha meg akarod tartani a sorrendet, például a beszúrás sorrendjét, akkor egy kiegészítő adatszerkezetet, például kulcsokból álló szeletet kell használnod, és azon iterálnod.

Példa:

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

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

Így az iteráció sorrendje stabil és előre látható lesz.