<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
這篇文章將會為大家介紹GoFrame gset使用入門,為了讓大家更好的理解,會簡明扼要的分析一下集合型別Set的特點,對比一下Java、PHP、原生Go對集合Set型別的支援情況,如果不支援Set型別,我們如何找到解決方案,來實現元素不可重複性和交差並補集的需求。
集合gset:一組不可重複的元素,元素可以是任何型別
上一篇文章介紹的: GoFrame的garray為什麼比PHP的array還好用? garray的排序陣列也可以通過設定SetUnique(true),設定元素不可重複的特性。
package main import ( "fmt" "github.com/gogf/gf/container/gset" ) func main() { //建立一個並行安全的集合物件 s := gset.New(true) //新增資料 s.Add(1) // 批次新增資料 s.Add([]interface{}{2, 3, 4, 5}...) //注意 這裡要用... 即把切片打散之後新增 // 列印結果 fmt.Println(s) fmt.Println("集合的大小:", s.Size()) fmt.Println("集合的大小:", s.Size()) fmt.Println("集合中是否包含某個值:", s.Contains(5)) fmt.Println("集合中是否包含某個值:", s.Contains(10)) fmt.Println("返回資料項:", s.Slice()) s.Remove(1) //刪除的是資料項 不是根據索引刪除 fmt.Println("remove刪除資料項之後:", s) // 遍歷 s.Iterator(func(v interface{}) bool { fmt.Println("遍歷結果:", v) return true }) // 集合轉字串 fmt.Println("集合轉字串:", s.String()) // 並行安全寫鎖操作 s.LockFunc(func(m map[interface{}]struct{}) { m[6] = struct{}{} }) // 並行安全讀鎖操作 s.RLockFunc(func(m map[interface{}]struct{}) { fmt.Println("並行安全讀鎖操作:", m) }) // 清空集合 s.Clear() fmt.Println("清空集合後:", s) }
列印結果
PHP是沒有Set資料型別的,set關鍵字作為一個賦值函數使用。在PHP中,__set()方法可以用於為私有成員屬性設定值,給一個未定義的屬性賦值時會被觸發;
使用Set一個非常重要的場景就是使用交差並補集;之前用PHP開發專案時,我們是使用Redis的Set來實現交差並補集需求的。
在Java中,是有Set型別的:存取無序,元素唯一。
Go原生也是不提供Set型別的,但是GoFrame為我們提供了gset型別。
我們可以基於gset實現不可重複元素的需求,當然,如果是Java轉Go的同學,使用gset應該會更加得心應手。
下圖是Go原生提供的資料型別,讓我們確信go原生並未支援set型別,但是支援Map型別。
而Map的key不能有重複值,當我們使用Go原生開發時,如果要實現不可重複元素的需求可以使用Map的這一特性。
Go原生開發要實現交差並補集,一樣可以像我們一樣,使用Redis的集合set,Redis還支援有序集合(sorted set)。
以上就是GoFrame框架gset使用對比PHP Java Redis優勢的詳細內容,更多關於GoFrame框架gset優勢的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45