So erhalten Sie einen Slice von Schlüsseln aus einer Map in Go: eine einfache und effiziente Lösung
Hallo zusammen! Ich bin ein Anfänger in der Go-Entwicklung und bin auf eine scheinbar einfache Aufgabe gestoßen, finde aber keine elegante Lösung.
Ich habe eine Map, sagen wir `map[string]int`, wo die Keys Benutzernamen sind und die Values deren Alter. Ich muss eine Liste aller Keys (Namen) als Slice `[]string` erhalten, um sie zum Beispiel an eine Funktion zu übergeben, die eine Benutzerliste ausgibt.
In Python würde ich einfach `list(my_dict.keys())` schreiben. In JavaScript — `Object.keys(myObj)`. In Go sehe ich bisher nur die Möglichkeit mit manuellem Durchlauf:
```go
users := map[string]int{
"Alice": 25,
"Bob": 30,
"Charlie": 22,
}
var keys []string
for k := range users {
keys = append(keys, k)
}
```
Das funktioniert, sieht aber wie ein umständliches Eigenbau aus. Mir scheint, dass es für so eine häufige Operation in der Standardbibliothek von Go eine eingebaute Funktion geben sollte. Ich habe in `reflect` und `maps` (Go 1.21+) gesucht, aber keine klare Antwort gefunden.
Fragen:
1. Ist der manuelle Durchlauf wirklich die einzige
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs