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.