Sobes.tech
Junior — Middle

Kako se vrši sekvenca obilaska elemenata u strukturi podataka Map?

sobes.tech АИ

Одговор од АИ

U Go, struktura podataka map ne garantuje određeni redosled prolaska kroz elemente. Tokom iteracije pomoću petlje for range, redosled će biti slučajan i može se menjati pri svakom pokretanju programa.

Primer prolaska kroz elemente mape:

m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
    fmt.Println(key, value)
}

Ako je potrebna sortirana iteracija, obično se ključevi izvuku u niz, sortiraju i zatim prolaze redom:

keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
    fmt.Println(k, m[k])
}

Na ovaj način, sekvenca prolaska u map nije unapred definisana i slučajna je.