Sobes.tech
Junior — Middle

Se poate garanta ordinea de parcurgere a elementelor în structura de date Map?

sobes.tech AI

Răspuns de la AI

În Go, ordinea de parcurgere a elementelor în structura de date map nu este garantată și este aleatorie. Acest lucru este făcut intenționat pentru a preveni ca codul să depindă de ordinea de parcurgere și pentru a crește securitatea.

Dacă este nevoie de o ordine garantată, de obicei:

  • Se extrag cheile într-un slice
  • Se sortează slice-ul
  • Se parcurge map-ul după cheile sortate

Exemplu:

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])
}

Astfel, nu se poate conta pe ordinea de parcurgere a map în Go.