Sobes.tech
Senior

Garantiert die Map die Reihenfolge beim Lesen der Daten?

sobes.tech KI

Antwort von AI

In Go garantiert der eingebaute Typ map bei der Iteration über die Elemente keine Reihenfolge. Die Iteration erfolgt in einer Pseudo-Zufallsreihenfolge, die sich bei jedem Programmstart ändern kann. Wenn eine sortierte Durchlaufreihenfolge erforderlich ist, müssen die Schlüssel zusätzlich in einem Slice gespeichert und vor der Iteration sortiert werden.

Beispiel für das Durchlaufen einer map mit sortierten Schlüsseln:

m := map[string]int{"b": 2, "a": 1, "c": 3}

// Schlüssel sammeln
keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}

// Schlüssel sortieren
sort.Strings(keys)

// Über die sortierten Schlüssel iterieren
for _, k := range keys {
    fmt.Println(k, m[k])
}