Вопрос проверяет знание стандартной библиотеки Go и умение моделировать структуры данных.
В Go нет встроенного типа Set, но можно легко реализовать множество с помощью map[T]struct{}. Такой подход эффективен и компактен.
Go не предоставляет тип Set напрямую, но его можно реализовать с использованием map, где ключ — это значение множества, а значение — пустая структура (struct{}), занимающая 0 байт.
Пример:
set := make(map[string]struct{})
set["apple"] = struct{}{}
set["banana"] = struct{}{}
// Проверка на наличие
if _, exists := set["apple"]; exists {
fmt.Println("apple is in the set")
}Особенности:
Элементы уникальны.
Проверка и вставка работают за O(1).
Не сохраняется порядок.
Когда использовать:
Когда важно наличие/отсутствие элемента.
Когда не нужно хранить значения, только ключи.