基础概念
GoFrame框架(下文简称gf)提供的数据类型,比如:字典gmap、数组garray、集合gset、队列gqueue、树形结构gtree、链表glist都是支持设置并发安全开关的。
支持设置并发安全开关这也是gf提供的常用数据类型和原生数据类型非常重要的区别
今天和大家分享gf框架的glist详解:
基本使用
glist的使用场景是:双向链表
- 通过PushBack向链表尾部插入数据
- 通过PushFront向链表头部插入数据
- 通过InsertBefore向指定位置前插入数据
- 通过InsertAfter向指定位置后插入数据
- 通过PopBacks从尾部取出数据
- 通过PopFronts从头部取出数据
打印结果
glist链表遍历
链表的遍历是常用的场景
- 我们可以通过原生方法IteratorAsc实现正序遍历
- 可以通过原生方法IteratorDesc实现倒序遍历
当然了,我们也可以自定义遍历规则 比如我们可以通过读锁和写锁遍历一个并发安全的链表 下方代码块标注了明确的注释。
打印结果
小技巧
下面分享一些我在使用中的小技巧
join
通过join处理成逗号分隔的字符串
打印结果
序列化和反序列化
呼应一下开头提到的:支持设置并发安全开关是gf提供的常用数据类型和原生数据类型非常重要的区别
gf提供的数据类型都支持序列化和反序列化就是另外一个重要特点了。
总结
通过这篇文章,我们了解到:
- gf框架提供的数据结构,比如:字典gmap、数组garray、集合gset、队列gqueue、树形结构gtree、链表glist都是支持设置并发安全开关的;而且都支持序列化和反序列化,实现了标准库json数据格式的序列化/反序列化接口。
- 学习到了glist的基础使用以及如何自定义遍历取值。