Sobes.tech
Middle

Čo zobrazí program pri iterácii cez mapu?

sobes.tech AI

Odpoveď od AI

V Go nie je definovaný poradím iterácie cez mapu a môže sa meniť pri každom spustení programu. Je to spôsobené tým, že mapy v Go sú implementované pomocou hash tabuliek a z bezpečnostných a nepredvídateľných dôvodov je poradie prechodu zámerne náhodne.

Príklad:

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

Pri každom spustení môže byť výstup odlišný, napríklad:

b 2
a 1
c 3

alebo

c 3
b 2
a 1

Ak je potrebný zoradený výstup, je potrebné zozbierať kľúče do poľa, zoradiť ich a iterovať cez zoradené kľúče.