GoFrame框架gset交差并补集使用实例
目录
- 使用场景方法介绍
- Intersect: 交集
- Diff: 差集
- Union: 并集
- Complement: 补集
- 举例
- 总结
上一篇文章:GoFrame gset使用入门 | 对比PHP、Java、Redis 得到了大家不错的反馈,今天继续为大哥分享gset的更多知识点。
使用场景方法介绍
交差并补集有非常多的应用场景,合理的使用交差并补集能减少我们的DB查询次数。
Intersect: 交集
交集,属于set且属于others的元素为元素的集合。
func (set *Set) Intersect(others ...*Set) (newSet *Set)
Diff: 差集
Diff: 差集,属于set且不属于others的元素为元素的集合。
func (set *Set) Diff(others ...*Set) (newSet *Set)
Union: 并集
Union: 并集,属于set或属于others的元素为元素的集合。
func (set *Set) Union(others ...*Set) (newSet *Set)
Complement: 补集
Complement: 补集,(前提: set应当为full的子集)属于全集full不属于集合set的元素组成的集合。如果给定的full集合不是set的全集时,返回full与set的差集。
func (set *Set) Complement(full *Set) (newSet *Set)
注意:通过集合方法中的...我们可以发现,交差并集方法支持多个集合参数进行计算。
举例
package main import ( "fmt" "github.com/gogf/gf/container/gset" ) func main() { s1 := gset.NewFrom([]interface{}{1, 2, 3}) s2 := gset.NewFrom([]interface{}{4, 5, 6}) s3 := gset.NewFrom([]interface{}{1, 2, 3, 4, 5, 6, 7}) fmt.Println("s1和s3的交集:", s1.Intersect(s3)) //s1和s3的交集:"[1,2,3]" fmt.Println("s1和s2的差集:", s1.Diff(s2)) //s1和s2的差集:"[2,3,1]" fmt.Println("s1和s2的并集:", s1.Union(s2)) //s1和s2的并集:"[3,1,4,5,6,2]" fmt.Println("s1和s3的补集:", s1.Complement(s3)) //s1和s3的补集:"[4,5,6,7]" }
打印结果
总结
通过这篇文章我们了解到gset数据结构交差并补集的基本使用
交差并集方法是支持多个集合参数进行计算的
合理使用交差并补集能较少DB查询次数,提高程序整体响应速度。
更多关于GoFrame gset交差并补集的资料请关注我们其它相关文章!
相关推荐
-
GoFrame框架使用避坑指南和实践干货
目录 gf gen dao 设置参数可不传 model作为结构体类型 使用with关联取值而不是join 不使用结构体批量添加数据 主程序如下: gomeGoods.MainImgs的定义: 插入数据 gf gen dao 生成dao层的脚手架工具很好用,我遇到的坑是这样的: 生成的dao文件和同事们的不一致,生成文件成功,但是对应的Columns是空的,虽然有这个方法,但是方法内没有值.我的版本比同事们的略高,我一直以为是这个原因,各种降级和同事保持一致的版本后还是不行. 最终发现:是配置文件
-
GoFrame框架ORM原生方法对象操作开箱体验
目录 前言 开箱体验 1. ORM对象 tips 2. 数据写入 3. 数据查询(单条) 4. 数据查询(列表) 5. 数据保存 6. 批量操作 tips 7. 数据更新/删除 tips 总结 前言 最近一直在用GoFrame(下文简称gf)来开发项目,在熟悉业务逻辑之后就是马不停蹄的撸代码了. 之前整理过结构体和json转换的文章:GoFrame必知必会之Scan:类型转换,今天整理同样比较重要的ORM相关的文章. gf是支持ORM原生操作的,在ORM链式操作执行不了太过于复杂的SQL操作时,
-
GoFrame gmap遍历hashmap listmap treemap使用技巧
目录 先说结论 map类型 使用技巧 基础概念 对比sync.Map 基础使用 合并 merge 序列化 过滤空值 键值对反转 Flip 出栈(随机出栈) 总结 文章比较硬核,爆肝2千多字,除了hashmap.listmap.treemap使用技巧阅读还有使用gmap的踩坑之旅,阅读大约需要5~10分钟. 先说结论 map类型 一图胜千言: 实例化示例: hashMap := gmap.New(true) listMap := gmap.NewListMap(true) treeMap := g
-
GoFrame框架garray对比PHP的array优势
目录 打印结果 打印结果 打印结果 打印结果: 打印结果 打印结果 打印结果 写过PHP的同学都知道 PHP的数组Array非常好用,特别灵活. 我在写PHP之前使用Java做安卓开发,在接触PHP的数组Array之后,直呼太香了! 而在学习Go基础知识的时候了解到Go的数组和PHP的数组并不一样:从一定程度上讲,Go的slice切片类型和PHP的数组array比较像(不固定长度.引用类型.动态扩容等),但是在开发使用中远远不像PHP的array灵活. 初识GoFrame 最近在使用基于Go语言
-
GoFrame ORM原生方法操作示例
目录 前言 常用方法 SQL操作方法,返回原生的标准库sql对象 数据表记录查询: 数据单条操作 数据修改/删除 总结 前言 最近一直在用GoFrame(下文简称gf)来开发项目,在熟悉业务逻辑之后就是马不停蹄的撸代码了. 之前整理过结构体和json转换的文章:GoFrame必知必会之Scan:类型转换,今天整理同样比较重要的ORM相关的文章. gf是支持ORM原生操作的,在ORM链式操作执行不了太过于复杂的SQL操作时,可以交给方法操作来处理. 这篇文章整理原生操作的常用方法,下篇文章根据整理
-
GoFrame框架gset使用对比PHP Java Redis优势
目录 特点 使用入门 对比PHP和Java PHP JAVA GO原生 GoFrame 延伸 这篇文章将会为大家介绍GoFrame gset使用入门,为了让大家更好的理解,会简明扼要的分析一下集合类型Set的特点,对比一下Java.PHP.原生Go对集合Set类型的支持情况,如果不支持Set类型,我们如何找到解决方案,来实现元素不可重复性和交差并补集的需求. 特点 集合gset:一组不可重复的元素,元素可以是任何类型 上一篇文章介绍的: GoFrame的garray为什么比PHP的array还好
-
GoFrame框架gset交差并补集使用实例
目录 使用场景方法介绍 Intersect: 交集 Diff: 差集 Union: 并集 Complement: 补集 举例 总结 上一篇文章:GoFrame gset使用入门 | 对比PHP.Java.Redis 得到了大家不错的反馈,今天继续为大哥分享gset的更多知识点. 使用场景方法介绍 交差并补集有非常多的应用场景,合理的使用交差并补集能减少我们的DB查询次数. Intersect: 交集 交集,属于set且属于others的元素为元素的集合. func (set *Set) Inte
-
适合PHP同学的GoFrame框架的使用体验及学习建议
目录 前言 官方介绍 我的使用体验 设计思想 学习建议 有基础的同学 无基础的同学 官网地址 小坑 前言 今天继续为大家更新Go语言学习记录的文章,介绍最近发现的一款非常优秀的框架:GoFrame. 最近发现了一款非常好用的基于go语言的web开发框架,非常适合PHP转Go的同学使用,在很多设计思想和使用上和PHP的Laravel框架非常像. 今天就为大家简单介绍一下GoFrame的特点 官方介绍 GoFrame是一款模块化.高性能.企业级的Go基础开发框架.GoFrame不是一款WEB/RPC
-
使用Bootstrap框架制作查询页面的界面实例代码
以Bootstrap框架来进行设计和开发,是目前国际上比较流行的一个趋势.很多软件公司在优化新产品时,因为其在js和控件上的综合优势,会选用这个开发框架. Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太大).尤其是现在的响应时布局(我的理解是页面根据不同的分辨率,采用不同的页面元素的布局),在Bootstrap中很好的支持了,只要简单设置了属性,就能自动实现响应时布局,大大简化了程序员的界面的过程. 因此,本人
-
使用MUI框架构建App请求http接口实例代码
简介 最近在看Dcloud的MUI框架,MUI封装了android.ios等多个平台的原生接口,达到开发一个项目,采取不同打包方式,生产多种平台的app. 无可厚非,对于从事java web开发的工程师,带来了极大的福音,再也不用去花太多时间去学习原生的android.ios语言,大大缩短了app开发的学习周期和成本. 当然,既然是做了封装处理,肯定性能上面不如原生.但是Dcloud官方声称MUI是最接近原生App体验的前端框架,并且在一些低端机上的表现也比较理想,想必也做了不少优化处理,另一方
-
Java框架学习Struts2复选框实例代码
复选框在Web开发中使用的非常多,现在我们通过struts2的复选框标签来实现一些在开发中经常遇到的问题. 先来看看这个标签的属性: 注:listKey相当于HTML中的value属性,这个值在和后台交互时才真正是我们在后台要使用的:listValue只是内容的显示而已. 案例1 用户选择了喜欢的课程,现在要对已经选择的课程进行修改,跳转到修改界面,然后回显已经勾选的课程. 用户已选课程界面: 点击按钮后进入课程修改界面: 注:在修改界面要对用户最初的选择进行回显. 代码实现!!!! 用户已选课
-
vue框架制作购物车小球动画效果实例代码
最近在学习前端制作了一个购物车小球的动画效果 直接上图看看效果 下面介绍一下制作这个动画的详细过程: 1.因为使用vue锁业需要使用transition标签包裹 并指定动画三个动画生命周期函数 <transition @before-enter="beforeEnter" @enter="enter" @after-enter="afterEnter"> <div class="ball" v-if=&quo
-
对dataframe数据之间求补集的实例详解
python的pandas库,对于dataframe数据,有merge命令可以完成dataframe数据之间的求取交集并集等命令. 若存在df1与df2 ,他们的交集df3=pd.merge(df1,df2,on=[.....]).但是又想通过df3求df3与df1的补集时发现没有该命令. 求df3(子集)与df1补集: #x为子集 def Complement(x,y): import numpy as np array1 = np.array(x) list1=array1.tolist()
-
Django REST框架创建一个简单的Api实例讲解
Create a Simple API Using Django REST Framework in Python WHAT IS AN API API stands for application programming interface. API basically helps one web application to communicate with another application. Let's assume you are developing an android app
随机推荐
- PHP CURL CURLOPT参数说明(curl_setopt)
- ExtJS GridPanel 根据条件改变字体颜色
- 让MCAFEE来终结网站被黑的时代-终极版图文
- iOS实现列表与网格两种视图的相互切换
- JavaScript使用Range调色及透明度实例
- GridView_RowUpdating取不到新值的解决方法
- PHP消息队列用法实例分析
- C++11新特性中auto 和 decltype 区别和联系
- 使用JS实现jQuery的addClass, removeClass, hasClass函数功能
- shell 字符串操作(长度,查找,替换)详解
- SQL Server 2000安全配置详解
- mybatis 插件: 打印 sql 及其执行时间实现方法
- jQuery 动画效果代码分享
- javascript中对Date类型的常用操作小结
- JavaScript测试工具之Karma-Jasmine的安装和使用详解
- JAVA图片水印开发案例详解
- Asp.Net设计模式之单例模式详解
- Python之多线程爬虫抓取网页图片的示例代码
- C#实现简单加减乘除计算器
- asp.net使用JS+form表单Post和Get方式提交数据