Junior — Middle
Ar galima garantuoti Map duomenų struktūros elementų apėjimo tvarką?
sobes.tech AI
Atsakymas iš AI
Go kalboje nėra garantuoto ir atsitiktinio duomenų struktūros map elementų apėjimo tvarkos. Tai padaryta tyčia, siekiant išvengti kodo priklausomybės nuo apėjimo tvarkos ir padidinti saugumą.
Jei reikalinga garantuota tvarka, paprastai:
- Išskiriami raktai į sąrašą (slice)
- Sąrašas surūšiuojamas
mapapėjamas pagal surūšiuotus raktus
Pavyzdys:
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])
}
Taip, negalima pasikliauti map apėjimo tvarka Go kalboje.