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
}