Sobes.tech
Junior — Middle

Kas järgneva mitu korda kaardil liikudes säilib võtmete järjekord?

sobes.tech AI

Vastus AI-lt

Go keeles tüüp map ei taga garanteeri võtmete järjekorra säilitamist iteratsiooni ajal. Iga map-i läbimisel võib võtmete läbimise järjekord olla erinev, kuna sisemine hash-tabeli esitus ei ole järjestatud.

Kui soovite säilitada järjekorda, näiteks sisestamise järjekorda, tuleks kasutada täiendavat andmestruktuuri, näiteks võtmete massiivi, ja selle kaudu iteratsiooni teha.

Näide:

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

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

Sellisel juhul on iteratsiooni järjekord stabiilne ja etteaimatav.