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.