Junior — Middle
Може ли да се гарантира редът на обхождане на елементите в структурата от данни Map?
sobes.tech AI
Отговор от AI
В Go редът на обхождане на елементите в структурата данни map не е гарантиран и е случаен. Това е направено умишлено, за да се предотврати зависимостта на кода от реда на обхождане и за повишаване на сигурността.
Ако е необходим гарантиран ред, обикновено:
- Извличат се ключовете в срез (slice)
- Срезът се сортира
- Обхожда се map по сортираните ключове
Пример:
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])
}
По този начин, не може да се разчита на реда на обхождане на map в Go.