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.