Senior
La mappa garantisce l'ordine di lettura dei dati?
sobes.tech AI
Risposta dell'AI
In Go, il tipo incorporato map non garantisce l'ordine di iterazione degli elementi durante la lettura. L'iterazione su una map avviene in un ordine pseudo-casuale, che può cambiare ad ogni esecuzione del programma. Se è necessaria un'iterazione ordinata, bisogna memorizzare le chiavi in un slice e ordinarle prima dell'iterazione.
Esempio di iterazione di una map con ordinamento delle chiavi:
m := map[string]int{"b": 2, "a": 1, "c": 3}
// Ottenere le chiavi
keys := make([]string, 0, len(m))
for k := range m {
keys = append(keys, k)
}
// Ordinare le chiavi
sort.Strings(keys)
// Iterare sulle chiavi ordinate
for _, k := range keys {
fmt.Println(k, m[k])
}