Junior — Middle
Kann die Reihenfolge der Durchlaufung der Elemente in der Datenstruktur Map garantiert werden?
sobes.tech KI
Antwort von AI
In Go ist die Reihenfolge der Elemente bei der Durchlaufung der Datenstruktur map nicht garantiert und zufällig. Dies wurde absichtlich so gemacht, um zu verhindern, dass der Code von der Reihenfolge des Durchlaufs abhängt und um die Sicherheit zu erhöhen.
Wenn eine garantierte Reihenfolge erforderlich ist, wird in der Regel:
- Die Schlüssel in ein Slice extrahieren
- Das Slice sortieren
- Die map anhand der sortierten Schlüssel durchlaufen
Beispiel:
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])
}
Auf diese Weise kann man sich nicht auf die Reihenfolge des Durchlaufs der map in Go verlassen.