Sobes.tech
Junior — Middle

Je možné vytvoriť štruktúru alebo dátový typ podobný množine v jazyku Go?

sobes.tech AI

Odpoveď od AI

V jazyku Go neexistuje zabudovaný typ "množina" (set), ale je možné ho implementovať pomocou mapy (map) s kľúčmi požadovaného typu a hodnotami typu struct{} alebo bool. Použitie struct{} šetrí pamäť, pretože prázdna štruktúra nezaberá miesto.

Príklad implementácie množiny reťazcov:

// Vytvoríme množinu reťazcov
set := make(map[string]struct{})

// Pridáme prvok
set["apple"] = struct{}{}

// Skontrolujeme, či prvok existuje
if _, exists := set["apple"]; exists {
    fmt.Println("Prvok je v množine")
}

// Odstránime prvok
delete(set, "apple")

Týmto spôsobom efektívne modeluje mapa s kľúčmi a prázdnymi hodnotami množinu.