Sobes.tech
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.