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其它相關文章!
推薦閱讀:
- GoFrame框架gset使用對比PHP Java Redis優勢
- GoFrame框架garray對比PHP的array優勢
- GoFrame glist 基礎使用和自定義遍歷
- GoFrame框架gredis優雅的取值和類型轉換
- GoFrame gtree樹形結構的使用技巧示例