Sobes.tech
Junior — Middle

Garantiert die Datenstruktur Map die Beibehaltung der Einfügereihenfolge der Elemente?

sobes.tech KI

Antwort von AI

In der Programmiersprache Go garantiert die Datenstruktur map nicht die Beibehaltung der Einfügereihenfolge der Elemente. Die Iteration über eine map erfolgt in einer zufälligen Reihenfolge, die sich bei jedem Durchlauf ändern kann.

Wenn die Reihenfolge der Einfügungen beibehalten werden soll, muss eine zusätzliche Struktur verwendet werden, z.B. ein Slice, um die Schlüssel in der gewünschten Reihenfolge zu speichern, oder externe Bibliotheken, die geordnete Wörterbücher implementieren.

Beispiel für die Iteration über eine map mit Beibehaltung der Schlüsselreihenfolge:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    keys := []string{"a", "b", "c"} // Reihenfolge der Einfügungen

    for _, k := range keys {
        fmt.Println(k, m[k])
    }
}