Sobes.tech
Junior — Middle

Je možné vytvořit strukturu nebo datový typ podobný množině v jazyce Go?

sobes.tech AI

Odpověď od AI

V jazyce Go neexistuje vestavěný typ "množina" (set), ale lze jej implementovat pomocí mapy (map) s klíči požadovaného typu a hodnotami typu struct{} nebo bool. Použití struct{} šetří paměť, protože prázdná struktura nezabírá místo.

Příklad implementace množiny řetězců:

// Vytvoříme množinu řetězců
set := make(map[string]struct{})

// Přidáme prvek
set["apple"] = struct{}{}

// Zkontrolujeme, zda prvek existuje
if _, exists := set["apple"]; exists {
    fmt.Println("Prvek je v množině")
}

// Odstraníme prvek
delete(set, "apple")

Tímto způsobem efektivně modeluje mapa s klíči a prázdnými hodnotami množinu.