package set // StringSet 定义一个字符串集合类型,使用 map 实现 type StringSet map[string]struct{} func NewStringSet() StringSet { return make(StringSet) } // Add 添加元素到集合中 func (s StringSet) Add(elements ...string) { for _, element := range elements { s[element] = struct{}{} } } // Remove 删除集合中的元素 func (s StringSet) Remove(element string) { delete(s, element) } // Contains 检查元素是否存在于集合中 func (s StringSet) Contains(element string) bool { _, exists := s[element] return exists } // Size 返回集合的大小 func (s StringSet) Size() int { return len(s) } // Elements 返回集合中的所有元素 func (s StringSet) Elements() []string { var elements []string for key := range s { elements = append(elements, key) } return elements } // Iterate 遍历集合中的所有元素 func (s StringSet) Iterate(f func(string)) { for key := range s { f(key) } }