Sobes.tech
Junior — Middle

È possibile garantire l'ordine di attraversamento degli elementi nella struttura dati Map?

sobes.tech AI

Risposta dell'AI

In Go, l'ordine di attraversamento degli elementi nella struttura dati map non è garantito ed è casuale. Questo è fatto appositamente per evitare che il codice dipenda dall'ordine di attraversamento e per aumentare la sicurezza.

Se è necessario un ordine garantito, di solito:

  • Si estraggono le chiavi in un slice
  • Si ordina il slice
  • Si attraversa la mappa secondo le chiavi ordinate

Esempio:

keys := make([]string, 0, len(myMap))
for k := range myMap {
    keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
    fmt.Println(k, myMap[k])
}

In questo modo, non si può fare affidamento sull'ordine di attraversamento di map in Go.