Sobes.tech
Senior

Harta garantează ordinea citirii datelor?

sobes.tech AI

Răspuns de la AI

În Go, tipul încorporat map nu garantează ordinea de parcurgere a elementelor la citire. Iterarea pe map are loc într-o ordine pseudo-aleatorie, care poate varia la fiecare rulare a programului. Dacă este necesară o parcurgere ordonată, trebuie să stocați cheile suplimentar într-un slice și să le sortați înainte de iterare.

Exemplu de parcurgere a unui map cu sortarea cheilor:

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

// Obțineți cheile
keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}

// Sortează cheile
sort.Strings(keys)

// Parcurgeți cheile sortate
for _, k := range keys {
    fmt.Println(k, m[k])
}