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.