Sobes.tech
Junior — Middle

Come si può implementare una struttura dati Set nel linguaggio Go?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Go non esiste un tipo Set incorporato, ma può essere implementato usando una mappa (map) con chiavi del tipo desiderato e valore bool o una struttura vuota struct{}. Ad esempio, un insieme di stringhe può essere fatto così:

package main

import "fmt"

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

    // Aggiunta di elementi
    set["apple"] = struct{}{}
    set["banana"] = struct{}{}

    // Controllo della presenza di un elemento
    if _, exists := set["apple"]; exists {
        fmt.Println("apple è nel set")
    }

    // Rimozione di un elemento
    delete(set, "banana")

    // Iterare sugli elementi
    for key := range set {
        fmt.Println(key)
    }
}

L'uso di una struttura vuota struct{} al posto di bool risparmia memoria, poiché occupa 0 byte.