Junior
Как да реализираме множество (set) в Go?
sobes.tech AI
Отговор от 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
}