在 GoFrame 中,gset 模块提供了集合(Set)的实现,即 gset.HashSet。gset.HashSet 实现了无序集合,允许存储唯一的元素。以下是 gset.HashSet 的基本介绍和使用示例:

1. 导入包
import "github.com/gogf/gf/container/gset"

2. 创建和初始化

可以使用 gset.NewSet 创建一个空的 gset.HashSet 对象,也可以使用 gset.NewSetFrom 从已有的切片或数组初始化一个 gset.HashSet。
// 创建一个空的 gset.HashSet
set := gset.NewSet()

// 从已有的切片或数组初始化一个 gset.HashSet
set = gset.NewSetFrom([]interface{}{1, 2, 3, 4, 5})

3. 添加元素

使用 Add 方法向集合添加元素。
set.Add(6, 7, 8)

4. 移除元素

使用 Remove 方法从集合中移除指定元素。
set.Remove(6)

5. 判断元素是否存在

使用 Contains 方法判断集合是否包含指定元素。
contains := set.Contains(3)

6. 获取集合大小

使用 Size 方法获取集合的元素数量。
size := set.Size()

7. 清空集合

使用 Clear 方法清空集合。
set.Clear()

8. 获取集合中的所有元素

使用 Slice 方法获取集合中的所有元素。
elements := set.Slice()

9. 迭代集合

使用 Iterator 方法对集合进行迭代。
set.Iterator(func(value interface{}) {
    // 处理每一个元素
})

10. 其他方法

gset.HashSet 还提供了一系列其他方法,如并集、交集、差集等。
// 并集
unionSet := set.Union(gset.NewSetFrom([]interface{}{9, 10}))

// 交集
intersectionSet := set.Intersection(gset.NewSetFrom([]interface{}{3, 4, 5}))

// 差集
differenceSet := set.Difference(gset.NewSetFrom([]interface{}{1, 2, 3}))

这些方法使得在处理集合时变得非常方便。


转载请注明出处:http://www.zyzy.cn/article/detail/7701/GoFrame