Sobes.tech
Junior — Middle

Zachová se pořadí klíčů, pokud Mapu projdete několikrát?

sobes.tech AI

Odpověď od AI

V jazyce Go typ map nezaručuje zachování pořadí klíčů při iteraci. Při každém průchodu map může být pořadí klíčů odlišné, protože interní reprezentace hash tabulky není seřazená.

Pokud je třeba zachovat pořadí, například pořadí vložení, je vhodné použít dodatečnou datovou strukturu, například pole klíčů, a iterovat přes ni.

Pří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 způsobem bude sekvence průchodu stabilní a předvídatelná.