Sobes.tech
Junior — Middle

Hogyan történik az elemek bejárási sorrendje a Map adatstruktúrában?

sobes.tech MI

Válasz az MI-től

Go nyelvben a map adatszerkezet nem garantálja az elemek bejárási sorrendjét. A for range ciklussal történő iteráció során a sorrend véletlenszerű lesz, és minden programfuttatásnál változhat.

Példa map elemeinek bejárására:

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

Ha rendezett bejárásra van szükség, általában a kulcsokat egy szeletbe helyezik, rendezik, majd a rendezett szeletet iterálják:

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])
}

Így a map bejárási sorrendje alapértelmezetten nem meghatározott és véletlenszerű.