Junior — Middle
Wie erfolgt die Abfolge der Durchlaufung der Elemente in der Datenstruktur Map?
sobes.tech KI
Antwort von AI
In Go garantiert die Datenstruktur map keine bestimmte Reihenfolge bei der Iteration. Beim Durchlaufen mit einer for range-Schleife ist die Reihenfolge zufällig und kann sich bei jedem Programmlauf ändern.
Beispiel für die Iteration über ein map:
m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
fmt.Println(key, value)
}
Wenn eine sortierte Durchlaufreihenfolge benötigt wird, werden in der Regel die Schlüssel in ein Slice extrahiert, sortiert und dann in der sortierten Reihenfolge durchlaufen:
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])
}
Auf diese Weise ist die Reihenfolge des Durchlaufs in map standardmäßig nicht festgelegt und zufällig.