Junior — Middle
Ar programavimo kalbos Map duomenų struktūra yra rūšiuojama pagal raktus?
sobes.tech AI
Atsakymas iš AI
Go kalboje įmontuota duomenų struktūra map nesuteikia garantijos, kad raktai bus surūšiuoti. Elementų perėjimo tvarka map yra atsitiktinė ir gali keistis tarp iteracijų.
Jei reikia surūšiuoti elementus pagal raktus, reikia išgauti raktus į masyvą, jį surūšiuoti naudojant sort ir tada pereiti per map pagal surūšiuotus raktus:
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])
}
Taip, map pats savaime nėra surūšiuotas, tačiau rūšiavimą galima įgyvendinti rankiniu būdu.