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.