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.