Sobes.tech
Junior — Middle

Como implementar uma estrutura de dados Set na linguagem Go?

sobes.tech IA

Resposta da IA

Na linguagem Go não existe um tipo Set incorporado, mas pode ser implementado usando um mapa (map) com chaves do tipo desejado e valor bool ou uma estrutura vazia struct{}. Por exemplo, um conjunto de strings pode ser feito assim:

package main

import "fmt"

func main() {
    set := make(map[string]struct{})

    // Adicionando elementos
    set["apple"] = struct{}{}
    set["banana"] = struct{}{}

    // Verificando a existência de um elemento
    if _, exists := set["apple"]; exists {
        fmt.Println("apple está no conjunto")
    }

    // Removendo um elemento
    delete(set, "banana")

    // Iterando sobre os elementos
    for key := range set {
        fmt.Println(key)
    }
}

Usar uma estrutura vazia struct{} em vez de bool economiza memória, pois ela ocupa 0 bytes.