GoFrame框架gset交差并补集使用实例

 更新时间:2022年06月11日 11:52:15   作者:王中阳Go  
这篇文章主要为大家介绍了GoFrame框架gset交差并补集使用实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

上一篇文章: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交差并补集的资料请关注脚本之家其它相关文章!

相关文章

  • golang 实现Location跳转方式

    golang 实现Location跳转方式

    这篇文章主要介绍了golang 实现Location跳转方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • Go语言多人聊天室项目实战

    Go语言多人聊天室项目实战

    这篇文章主要为大家详细介绍了Go语言多人聊天室项目实战,实现单撩或多撩等多种功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 详解Go开发Struct转换成map两种方式比较

    详解Go开发Struct转换成map两种方式比较

    本篇文章主要介绍了详解Go开发Struct转换成map两种方式比较,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • go通过benchmark对代码进行性能测试详解

    go通过benchmark对代码进行性能测试详解

    在开发中我们要想编写高性能的代码,或者优化代码的性能时,你首先得知道当前代码的性能,在go中可以使用testing包的benchmark来做基准测试 ,文中有详细的代码示例,感兴趣的小伙伴可以参考一下
    2023-04-04
  • Go结合JavaScript实现抓取网页中的图像链接

    Go结合JavaScript实现抓取网页中的图像链接

    这篇文章主要为大家详细介绍了Go语言如何结合JavaScript实现抓取网页中的图像链接,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • win10下go mod配置方式

    win10下go mod配置方式

    这篇文章主要介绍了win10下go mod配置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • go本地环境配置及vscode go插件安装的详细教程

    go本地环境配置及vscode go插件安装的详细教程

    这篇文章主要介绍了go本地环境配置及vscode go插件安装的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Go 实现 WebSockets之创建 WebSockets

    Go 实现 WebSockets之创建 WebSockets

    这篇文章主要介绍了Go 实现 WebSockets之创建 WebSockets,文章主要探索 WebSockets,并简要介绍了它们的工作原理,并仔细研究了全双工通信,想了解更多相关内容的小伙伴可以参考一下
    2022-04-04
  • Go语言报错:'godoc' 不是内部或外部命令,也不是可运行的程序(godoc无法使用处理)解决方法

    Go语言报错:'godoc' 不是内部或外部命令,也不是可运行的程序(godoc无法使用处理)解决

    这篇文章主要介绍了Go语言报错:'godoc' 不是内部或外部命令,也不是可运行的程序(godoc无法使用处理)解决方法,详细描述了Go语言godoc命令无法使用的原因、解决方法与相关注意事项,需要的朋友可以参考下
    2024-01-01
  • Go语言中函数的使用方法详解

    Go语言中函数的使用方法详解

    这篇文章主要为大家详细介绍了Go语言中函数的使用方法的相关资料,文中的示例代码讲解详细,对我们学习Go语言有一定的帮助,感兴趣的可以了解一下
    2023-04-04

最新评论