Junior
Comment peut-on implémenter un ensemble (set) en Go?
sobes.tech IA
Réponse de l'IA
En Go, il n'existe pas de type de données intégré appelé "ensemble". Il peut être implémenté à l'aide de map.
// Implémentation d'un ensemble de chaînes
type Set map[string]struct{}
// Ajout d'un élément
func (s Set) Add(item string) {
s[item] = struct{}{} // Utiliser struct{} pour ne pas occuper de mémoire supplémentaire
}
// Suppression d'un élément
func (s Set) Remove(item string) {
delete(s, item)
}
// Vérification de la présence d'un élément
func (s Set) Contains(item string) bool {
_, ok := s[item]
return ok
}
// Récupérer tous les éléments (non ordonnés)
func (s Set) ToSlice() []string {
slice := make([]string, 0, len(s))
for item := range s {
slice = append(slice, item)
}
return slice
}