Sobes.tech
Junior — Middle

¿Cómo se puede implementar una estructura de datos Set en el lenguaje Go?

sobes.tech AI

Respuesta de la IA

En el lenguaje Go no existe un tipo incorporado Set, pero se puede implementar usando un mapa (map) con claves del tipo deseado y valor bool o una estructura vacía struct{}. Por ejemplo, un conjunto de cadenas se puede hacer así:

package main

import "fmt"

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

    // Añadir elementos
    set["apple"] = struct{}{}
    set["banana"] = struct{}{}

    // Comprobar si un elemento existe
    if _, exists := set["apple"]; exists {
        fmt.Println("apple está en el conjunto")
    }

    // Eliminar un elemento
    delete(set, "banana")

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

Usar una estructura vacía struct{} en lugar de bool ahorra memoria, ya que ocupa 0 bytes.