Sobes.tech
Junior — Middle

La sequenza delle chiavi rimarrà invariata se si percorre più volte la mappa?

sobes.tech AI

Risposta dell'AI

In Go, il tipo map non garantisce di mantenere l'ordine delle chiavi durante l'iterazione. Ad ogni passaggio su un map, l'ordine di percorrenza delle chiavi può essere diverso, poiché la rappresentazione interna della tabella hash non è ordinata.

Se si desidera mantenere un ordine, ad esempio l'ordine di inserimento, si dovrebbe usare una struttura dati aggiuntiva, come un slice di chiavi, e iterare su di esso.

Esempio:

m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "b", "c"}

for _, k := range keys {
    fmt.Println(k, m[k])
}

In questo modo, la sequenza di iterazione sarà stabile e prevedibile.