GoFrame框架gset交差并補集使用實例
上一篇文章:GoFrame gset使用入門 | 對比PHP、Java、Redis 得到了大家不錯的反饋,今天繼續(xù)為大哥分享gset的更多知識點。
使用場景方法介紹
交差并補集有非常多的應用場景,合理的使用交差并補集能減少我們的DB查詢次數(shù)。
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或?qū)儆趏thers的元素為元素的集合。
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)
注意:通過集合方法中的...我們可以發(fā)現(xiàn),交差并集方法支持多個集合參數(shù)進行計算。
舉例
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數(shù)據(jù)結構交差并補集的基本使用
交差并集方法是支持多個集合參數(shù)進行計算的
合理使用交差并補集能較少DB查詢次數(shù),提高程序整體響應速度。
更多關于GoFrame gset交差并補集的資料請關注腳本之家其它相關文章!

