Назад к вопросамВ каком порядке этот цикл обходит пары
JuniorТеорияИногда
В каком порядке этот цикл обходит пары map?
package main
import "fmt"
func main() {
m := map[int]string{1: "a", 2: "b", 3: "c"}
for k, v := range m {
fmt.Println(k, v)
}
}Порядок не задан и может меняться от запуска к запуску
- Ждать
1 a,2 b,3 c, раз так вышло на одном запуске: порядок не задан, и Go нарочно делает его случайным. - Ждать порядок по ключам, как у
fmt.Println(m):fmtсортирует ключи перед печатью, аrangeнет — сортируйте ключи сами.
- Почему команда Go намеренно сделала порядок обхода
mapслучайным? - Как напечатать элементы
mapв детерминированном, отсортированном порядке?