Sobes.tech
Junior — Middle

Ak prejdete viackrát Map, zachová sa poradové poradie kľúčov?

sobes.tech AI

Odpoveď od AI

V jazyku Go typ map nezaručuje zachovanie poradia kľúčov počas iterácie. Pri každom prechode map-om môže byť poradie prechádzania kľúčov odlišné, pretože interné zobrazenie hash tabuľky nie je zoradené.

Ak chcete zachovať poradie, napríklad poradie vloženia, mali by ste použiť dodatočnú dátovú štruktúru, napríklad pole kľúčov, a iterovať cez ňu.

Príklad:

m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "b", "c"}

for _, k := range keys {
    fmt.Println(k, m[k])
}

Týmto spôsobom bude sekvencia prechodu stabilná a predvídateľná.