Senior
Ar žemėlapis garantuoja duomenų skaitymo tvarką?
sobes.tech AI
Atsakymas iš AI
Go kalboje, įmontuotas map tipas ne garantuoja elementų perėjimo tvarką skaitant. Perėjimas per mapą vyksta pseudoatsitiktine tvarka, kuri gali keistis kiekvieno programos paleidimo metu. Jei reikalingas tvarkingas perėjimas, būtina papildomai saugoti raktus masyve ir juos rūšiuoti prieš perėjimą.
Pavyzdys, kaip peržiūrėti map su rūšiavimu raktų:
m := map[string]int{"b": 2, "a": 1, "c": 3}
// Raktų gavimas
keys := make([]string, 0, len(m))
for k := range m {
keys = append(keys, k)
}
// Rūšiavimas
sort.Strings(keys)
// Perėjimas per rūšiuotus raktus
for _, k := range keys {
fmt.Println(k, m[k])
}