Sobes.tech
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")

По този начин, карта с ключове и празни стойности ефективно моделира множество.