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])
}