Sobes.tech
Middle

Was gibt das Programm bei der Iteration über eine Map aus?

sobes.tech KI

Antwort von AI

In Go ist die Reihenfolge der Iteration über eine Map nicht festgelegt und kann sich bei jedem Programmlauf ändern. Dies liegt daran, dass Maps in Go mit Hash-Tabellen implementiert sind, und aus Sicherheits- und Vorhersehbarkeitsgründen wird die Reihenfolge der Durchläufe absichtlich zufällig gestaltet.

Beispiel:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    for k, v := range m {
        fmt.Println(k, v)
    }
}

Bei jedem Lauf kann die Ausgabe unterschiedlich sein, zum Beispiel:

b 2
a 1
c 3

oder

c 3
b 2
a 1

Wenn eine sortierte Ausgabe benötigt wird, muss man die Schlüssel in einem Slice sammeln, sortieren und dann über die sortierten Schlüssel iterieren.