Sobes.tech
Junior — Middle

Da li će se redosled ključeva sačuvati ako više puta prolazite kroz Mapu?

sobes.tech АИ

Одговор од АИ

U jeziku Go, tip map ne garantuje očuvanje reda ključeva tokom iteracije. Pri svakom prolazu kroz map, redosled prolaska kroz ključeve može biti različit, jer interna reprezentacija hash tabele nije sortirana.

Ako želite da sačuvate redosled, na primer redosled umetanja, trebalo bi da koristite dodatnu strukturu podataka, kao što je niz ključeva, i da kroz njega iterirate.

Primer:

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

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

Na ovaj način, sekvenca prolaska biće stabilna i predvidiva.