Avatar ·

Pourquoi Go n'a-t-il pas de structure de données "set" intégrée et comment l'implémenter ?

Bonjour à tous ! Je suis débutant en Go, je viens de Python, et je suis très déconcerté par l'absence d'un type de données "set" intégré. En Python, j'utilisais constamment set pour vérifier rapidement l'unicité des éléments, supprimer les doublons des slices et vérifier les intersections. Par exemple : ```go // Comment puis-je faire cela en Go ? uniqueNames := []string{} seen := set() // Cela n'existe pas ! for _, name := range names { if !seen.Contains(name) { seen.Add(name) uniqueNames = append(uniqueNames, name) } } ``` Je comprends qu'on peut utiliser map[string]bool ou map[string]struct{}, mais cela ressemble à un bricolage. Pourquoi les développeurs de Go n'ont-ils pas ajouté un vrai set dans la bibliothèque standard ? C'est une structure de données de base qui existe dans presque tous les langages modernes. Peut-être que je rate quelque chose ? Existe-t-il une manière idiomatique de travailler avec des ensembles en Go sans réinventer la roue ? Ou dois-je à chaque fois écrire ma propre implémentation ? Je serais reconnaissant pour des exemples de code et une explication de la philosophie.