Sobes.tech
Middle+

Какъв тип да използвате за реализиране на set в Go?

sobes.tech AI

Отговор от AI

В езика Go няма вградения тип set, но той може да бъде реализиран с помощта на карта (map) с ключове от желания тип и стойност bool или празна структура struct{}.

Пример за реализиране на множество от низове:

// Декларираме set като map[string]struct{}
set := make(map[string]struct{})

// Добавяне на елемент
set["apple"] = struct{}{}

// Проверка за наличие на елемент
if _, exists := set["apple"]; exists {
    fmt.Println("Елементът е в множеството")
}

// Премахване на елемент
delete(set, "apple")

Използването на struct{} вместо bool спестява памет, тъй като празната структура не заема място. Този подход е идиоматичен за реализиране на set в Go.