返回

并发安全GoFrame glist基础使用和自定义遍历

后端


GoFrame框架(下文简称gf)提供的数据类型,比如:字典gmap、数组garray、集合gset、队列gqueue、树形结构gtree、链表glist都是支持设置并发安全开关的。而且基本都继承了基本数据类型struct(可能是Go语言没有提供接口支持等原因,没实现interface),所以用起来也非常的舒服。


一、glist初始化方式

glist可通过new的方式创建,如:

var list = list.New()

二、glist基本操作

glist支持以下常用基本操作:

// 从glist后端添加元素,返回元素个数
list.Append(value)
// 从glist前端添加元素,返回元素个数
list.Prepend(value)
// 通过索引获取元素
list.Get(index)
// 修改通过索引获取到的元素
list.Set(index, value)
// 通过索引删除元素
list.Remove(index)
// 查找并删除元素
list.RemoveOne(value)
// 判断元素是否存在
list.Contains(value)
// 获取元素个数
list.Len()
// 清空元素
list.Clear()

三、glist自定义遍历

glist还支持自定义遍历,通过自定义遍历你可以灵活地处理glist中的元素。自定义遍历的用法如下:

list.Each(func (index int, value interface{}) {
    // 自定义处理代码
})

四、glist并发安全

glist是并发安全的,你可以通过以下方式设置glist的并发安全开关:

// 使用并发安全glist
var list = list.New(true)

五、glist unsafe

如果你不需要并发安全,可以使用unsafe来提高性能。unsafe的用法如下:

// 使用不安全glist
var list = list.New(false)

GoFrame框架中 glist 的并发安全特性非常有用,可以在多线程环境下安全地操作 glist。同时,glist 还支持自定义遍历,这使得你可以灵活地处理 glist 中的元素。此外,glist 还提供了一种 unsafe 模式,可以提高性能,但需要注意并发安全问题。

总之,GoFrame框架中的 glist 是一个非常强大且易于使用的集合类型,可以满足各种场景的需求。