Comment obtenir une slice des clés d'une map en Go : une solution simple et efficace
Bonjour à tous ! Je suis un développeur Go débutant et j'ai rencontré un problème apparemment simple, mais je n'arrive pas à trouver une solution élégante.
J'ai une map, disons `map[string]int`, où les clés sont des noms d'utilisateurs et les valeurs leur âge. J'ai besoin d'obtenir une liste de toutes les clés (noms) sous forme d'une slice `[]string`, par exemple pour la passer à une fonction qui affiche la liste des utilisateurs.
En Python, j'écrirais simplement `list(my_dict.keys())`. En JavaScript — `Object.keys(myObj)`. En Go, je ne vois pour l'instant qu'une solution avec une itération manuelle :
```go
users := map[string]int{
"Alice": 25,
"Bob": 30,
"Charlie": 22,
}
var keys []string
for k := range users {
keys = append(keys, k)
}
```
Cela fonctionne, mais cela ressemble à une solution verbeuse et réinventée. Il me semble qu'une fonction intégrée devrait exister dans la bibliothèque standard de Go pour une opération aussi fréquente. J'ai cherché dans `reflect` et `maps` (Go 1.21+), mais je n'ai pas trouvé de réponse claire.
Questions :
1. L'itération manuelle est-elle vraiment la seule