Sobes.tech
Junior — Middle

Zaručuje datová struktura Map zachování pořadí vložení prvků?

sobes.tech AI

Odpověď od AI

V jazyce Go struktura dat map nezaručuje zachování pořadí vkládání prvků. Iterace přes map probíhá v náhodném pořadí, které se může při každém průchodu měnit.

Pokud je potřeba zachovat pořadí vkládání, je nutné použít dodatečnou strukturu, například slice pro uložení klíčů ve požadovaném pořadí, nebo použít externí knihovny implementující řazené slovníky.

Příklad iterace přes map s zachováním pořadí klíčů:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    keys := []string{"a", "b", "c"} // pořadí vkládání

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