Sobes.tech
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.