Sobes.tech
Senior

Biztosítja a térkép az adatok olvasási sorrendjét?

sobes.tech MI

Válasz az MI-től

Go nyelvben a beépített map típus nem garantálja az elemek bejárási sorrendjét olvasáskor. A map feletti iteráció pszeudó-véletlenszerű sorrendben történik, amely minden programindításkor változhat. Ha rendezett bejárásra van szükség, akkor a kulcsokat külön tömbben kell tárolni, és azok szerint kell rendezni az iteráció előtt.

Példa a map rendezett kulcsok szerinti bejárására:

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

// Kulcsok lekérése
keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}

// Kulcsok rendezése
sort.Strings(keys)

// Rendezett kulcsok szerinti iteráció
for _, k := range keys {
    fmt.Println(k, m[k])
}