Sobes.tech
Middle

Какво ще покаже програмата при итерация върху карта?

sobes.tech AI

Отговор от AI

В Go редът на итерация върху map не е определен и може да се променя при всяко изпълнение на програмата. Това се дължи на факта, че map-овете в Go са реализирани с помощта на хеш таблици, и за сигурност и непредсказуемост редът на обход е умишлено рандомизиран.

Пример:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    for k, v := range m {
        fmt.Println(k, v)
    }
}

При всяко изпълнение изходът може да бъде различен, например:

b 2
a 1
c 3

или

c 3
b 2
a 1

Ако е необходим подреден изход, трябва да се съберат ключовете в срез, да се сортират и да се итерира по сортираните ключове.