Sobes.tech
Junior — Middle

Cum se realizează secvența de parcurgere a elementelor în structura de date Map?

sobes.tech AI

Răspuns de la AI

În Go, structura de date map nu garantează o anumită ordine de parcurgere a elementelor. La iterarea cu bucla for range, ordinea va fi aleatorie și se poate schimba la fiecare rulare a programului.

Exemplu de parcurgere a elementelor dintr-un map:

m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
    fmt.Println(key, value)
}

Dacă este nevoie de o parcurgere ordonată, de obicei se extrag cheile într-un slice, se sortează și apoi se parcurg în ordinea sortată:

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

Astfel, secvența de parcurgere în map nu este definită implicit și este aleatorie.