Comment obtenir une slice des clés d'une map en Go : guide complet
Bonjour à tous ! J'ai récemment commencé à apprendre Go et j'ai rencontré un problème qui semble élémentaire, mais je ne trouve pas de solution élégante.
J'ai une map avec des données utilisateurs :
users := map[int]string{
1: "Alice",
2: "Bob",
3: "Charlie",
4: "Diana",
}
J'ai besoin d'obtenir la liste de tous les IDs utilisateurs (clés) sous forme d'une slice []int. En Python, j'écrirais simplement list(users.keys()), mais en Go, il n'y a pas de fonction aussi simple.
J'ai essayé de faire ceci :
var keys []int
for key := range users {
keys = append(keys, key)
}
Cela fonctionne, mais je trouve cela trop verbeux. Existe-t-il une fonction intégrée ou une manière plus idiomatique ? Ce qui m'inquiète particulièrement :
- L'ordre des clés — est-il toujours aléatoire ?
- Comment gérer les grandes maps (des millions d'entrées) ?
- Peut-on le faire en une seule ligne ?
Je serais reconnaissant pour des exemples
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Travail avec les bases de données en C++ : PostgreSQL et MongoDB