Middle
Cosa mostrerà il programma con un'iterazione su una mappa?
sobes.tech AI
Risposta dell'AI
In Go, l'ordine di iterazione su una mappa non è definito e può cambiare ad ogni esecuzione del programma. Ciò è dovuto al fatto che le mappe in Go sono implementate utilizzando tabelle hash, e per motivi di sicurezza e imprevedibilità, l'ordine di attraversamento viene casualizzato intenzionalmente.
Esempio:
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for k, v := range m {
fmt.Println(k, v)
}
}
Ad ogni esecuzione, l'output può essere diverso, ad esempio:
b 2
a 1
c 3
oppure
c 3
b 2
a 1
Se si desidera un output ordinato, bisogna raccogliere le chiavi in un slice, ordinarle e iterare sulle chiavi ordinate.