Sobes.tech
Senior

Zaručuje mapa poradie čítania údajov?

sobes.tech AI

Odpoveď od AI

V jazyku Go typ map, ktorý je zabudovaný, nezaručuje poradie prechodu prvkami pri čítaní. Iterácia cez mapu prebieha v pseudo-náhodnom poradí, ktoré sa môže meniť pri každom spustení programu. Ak je potrebný zoradený prechod, je potrebné dodatočne uložiť kľúče do poľa a pred iteráciou ich zoradiť.

Príklad prechodu mapou so zoradením kľúčov:

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

// Získanie kľúčov
keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}

// Zoradenie kľúčov
sort.Strings(keys)

// Prechod zoradenými kľúčmi
for _, k := range keys {
    fmt.Println(k, m[k])
}