Sobes.tech
Junior — Middle

Biztosítani lehet az elemek bejárási sorrendjét a Map adatstruktúrában?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a map adatszerkezet elemeinek bejárási sorrendje nem garantált és véletlenszerű. Ez szándékosan van így, hogy megakadályozza a kód függőségét a bejárási sorrendtől és növelje a biztonságot.

Ha garantált sorrendre van szükség, általában:

  • Kivonják a kulcsokat egy szeletbe (slice)
  • Rendezik a szeletet
  • A mapet a rendezett kulcsok szerint járják be

Példa:

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

Így nem lehet megbízni a map bejárási sorrendjében Go nyelven.