Sobes.tech
Junior — Middle

É possível criar uma estrutura ou tipo de dado semelhante a um conjunto na linguagem Go?

sobes.tech IA

Resposta da IA

Na linguagem Go, não existe um tipo incorporado de "conjunto" (set), mas pode ser implementado usando um mapa (map) com chaves do tipo desejado e valores do tipo struct{} ou bool. O uso de struct{} economiza memória, pois a estrutura vazia não ocupa espaço.

Exemplo de implementação de um conjunto de strings:

// Criar um conjunto de strings
set := make(map[string]struct{})

// Adicionar um elemento
set["apple"] = struct{}{}

// Verificar se um elemento existe
if _, exists := set["apple"]; exists {
    fmt.Println("Elemento está no conjunto")
}

// Remover um elemento
delete(set, "apple")

Dessa forma, um mapa com chaves e valores vazios modela eficientemente um conjunto.