返回
并发安全GoFrame glist基础使用和自定义遍历
后端
2023-10-11 08:28:10
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 是一个非常强大且易于使用的集合类型,可以满足各种场景的需求。