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交差並補集的資料請關註WalkonNet其它相關文章!

推薦閱讀: