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