Sobes.tech
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
}