Sobes.tech
Junior

Como implementar um conjunto (set) em Go?

sobes.tech IA

Resposta da IA

No Go existe um tipo de dado incorporado chamado "conjunto". Pode ser implementado usando map.

// Implementação de um conjunto de strings
type Set map[string]struct{}

// Adicionar elemento
func (s Set) Add(item string) {
	s[item] = struct{}{} // Usar struct{} para não ocupar memória extra
}

// Remover elemento
func (s Set) Remove(item string) {
	delete(s, item)
}

// Verificar se contém
func (s Set) Contains(item string) bool {
	_, ok := s[item]
	return ok
}

// Obter todos os elementos (não ordenados)
func (s Set) ToSlice() []string {
	slice := make([]string, 0, len(s))
	for item := range s {
		slice = append(slice, item)
	}
	return slice
}