Sobes.tech
Назад к вопросам
Middle+
4

Какой тип использовать для реализации set в Go?

Компании, где спрашивали
ТБанк

Ответ от нейросети

sobes.tech 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.