Sobes.tech
Junior — Middle

Da li je moguće garantovati redosled prolaska kroz elemente u strukturi podataka Map?

sobes.tech АИ

Одговор од АИ

U jeziku Go, redosled prolaska kroz elemente u strukturi podataka map nije garantovan i slučajan je. Ovo je namerno urađeno da bi se sprečila zavisnost koda od reda prolaska i da bi se povećala sigurnost.

Ako je potreban garantovan redosled, obično:

  • Izvuku se ključevi u niz (slice)
  • Niz se sortira
  • Prolazi se kroz mapu po sortiranim ključevima

Primer:

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

Na ovaj način, ne može se osloniti na redosled prolaska map u jeziku Go.