So erhalten Sie einen Slice von Schlüsseln aus einer Map in Go: vollständige Anleitung
Hallo zusammen! Ich habe vor kurzem angefangen, Go zu lernen, und bin auf ein Problem gestoßen, das einfach erscheint, aber ich finde keine elegante Lösung.
Ich habe eine Map mit Benutzerdaten:
users := map[int]string{
1: "Alice",
2: "Bob",
3: "Charlie",
4: "Diana",
}
Ich muss eine Liste aller Benutzer-IDs (Schlüssel) als Slice []int erhalten. In Python würde ich einfach list(users.keys()) schreiben, aber in Go gibt es keine so einfache Funktion.
Ich habe es so versucht:
var keys []int
for key := range users {
keys = append(keys, key)
}
Das funktioniert, aber ich finde es zu ausführlich. Gibt es vielleicht eine eingebaute Funktion oder einen idiomatischeren Weg? Besonders beschäftigt mich:
- Ist die Reihenfolge der Schlüssel immer zufällig?
- Wie verhält es sich mit großen Maps (Millionen von Einträgen)?
- Kann man das in einer Zeile machen?
Ich wäre dankbar für Beispiele