Sobes.tech
Senior

Карта маалыматтарды окуу тартибин камсыздайбы?

sobes.tech AI

AIден жооп

Go тилинде, ички map тиби окуу учурунда элементтердин жүрүш тартибин кепилдебейт. Map үстүндө кайталоо псевдослучайдуу тартипте өтөт, ал ар бир программа иштетилгенде өзгөрүшү мүмкүн. Эгер тартиптүү өтүү керек болсо, ачкычтарды кошумча массивде сактап, аларды өтүүдөн мурда сорттоо керек.

Ачкычтарды сорттоо менен map үстүндө өтүү мисалы:

m := map[string]int{"b": 2, "a": 1, "c": 3}

// Ачкычтарды алуу
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])
}