Junior — Middle
Възможно ли е да създадете структура или тип данни, подобен на множество в езика Go?
sobes.tech AI
Отговор от AI
В езика Go няма вграден тип "множество" (set), но може да бъде реализиран чрез карта (map) с ключове от желания тип и стойности от тип struct{} или bool. Използването на struct{} спестява памет, тъй като празната структура не заема място.
Пример за реализиране на множество от низове:
// Създаваме множество от низове
set := make(map[string]struct{})
// Добавяме елемент
set["apple"] = struct{}{}
// Проверяваме дали елементът съществува
if _, exists := set["apple"]; exists {
fmt.Println("Елементът е в множеството")
}
// Премахваме елемент
delete(set, "apple")
По този начин, карта с ключове и празни стойности ефективно моделира множество.