Назад к вопросам
Junior
186
questionbank
Как можно реализовать множество (сет) в Go?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Go нет встроенного типа данных "множество". Его можно реализовать с помощью map.
// Реализация множества строк
type Set map[string]struct{}
// Добавление элемента
func (s Set) Add(item string) {
s[item] = struct{}{} // Используем struct{}, чтобы не занимать лишнюю память
}
// Удаление элемента
func (s Set) Remove(item string) {
delete(s, item)
}
// Проверка наличия элемента
func (s Set) Contains(item string) bool {
_, ok := s[item]
return ok
}
// Получение всех элементов (неупорядоченно)
func (s Set) ToSlice() []string {
slice := make([]string, 0, len(s))
for item := range s {
slice = append(slice, item)
}
return slice
}