最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang中set數(shù)據(jù)結(jié)構(gòu)的使用示例

 更新時間:2023年03月08日 14:59:30   作者:Pecto  
本文主要介紹了golang中set數(shù)據(jù)結(jié)構(gòu)的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

借助map實現(xiàn)

golang中沒有set數(shù)據(jù)結(jié)構(gòu),一般是通過map實現(xiàn),因為map的key值是不能重復(fù)的

示例

type empty struct {
}

// golang中的set數(shù)據(jù)類型
func MakeGolangSet(){
?? ?// 首先,空結(jié)構(gòu)體內(nèi)存消耗為0,其它數(shù)據(jù)結(jié)構(gòu)如布爾值等均存在內(nèi)存消耗
?? ?var e empty
?? ?fmt.Printf("empty struct memory is %v\n", unsafe.Sizeof(e))

?? ?fmt.Printf("bool memory is %v\n", unsafe.Sizeof(false))

?? ?set := make(map[string]struct{})
?? ?// ADD
?? ?set["foo"] = e
?? ?// DELETE
?? ?delete(set, "foo")
?? ?// set的規(guī)模
?? ?size := len(set)
?? ?fmt.Printf("set size is %v\n", size)
?? ?// 判斷是否存在
?? ?set["foo"] = e
?? ?value, exist := set["foo"]
?? ?fmt.Printf("value is %v\n, exist is %v\n", value, exist)
}

算法應(yīng)用

找兩個數(shù)組的交集

// 兩個數(shù)組的交集
func SectionWithTwoArray(num1, num2 []int) []int{
?? ?set := make(map[int]struct{}, 0)
?? ?var res []int
?? ?for _, v := range num1 {
?? ??? ?if _, ok := set[v]; !ok {
?? ??? ??? ?// 去重
?? ??? ??? ?set[v] = struct{}{}
?? ??? ?}
?? ?}
?? ?for _, v := range num2 {
?? ??? ?if _, ok := set[v]; ok {
?? ??? ??? ?res = append(res, v)
?? ??? ??? ?// 將此v刪掉,避免結(jié)果中出現(xiàn)重復(fù)數(shù)據(jù)
?? ??? ??? ?delete(set, v)
?? ??? ?}
?? ?}
?? ?return res
}

到此這篇關(guān)于golang中set數(shù)據(jù)結(jié)構(gòu)的使用示例的文章就介紹到這了,更多相關(guān)golang set數(shù)據(jù)結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言中切片(slice)和數(shù)組(array)的區(qū)別詳解

    Go語言中切片(slice)和數(shù)組(array)的區(qū)別詳解

    Go語言中切片(slice)和數(shù)組(array)是兩種不同的數(shù)據(jù)結(jié)構(gòu),它們在用法和行為上有一些重要區(qū)別,所以本文就通過一些代碼示例給大家詳細的介紹一下Go語言中切片(slice)和數(shù)組(array)的區(qū)別,需要的朋友可以參考下
    2023-09-09
  • Go語言中validation庫不能校驗零值問題的解決方法

    Go語言中validation庫不能校驗零值問題的解決方法

    在使用 Gin 框架的時候,前后端傳遞數(shù)據(jù)的時候,比如使用 JSON 格式,通常會使用 ShouldBindJSON 去用結(jié)構(gòu)體打 tag 綁定前端傳來的 JSON 格式數(shù)據(jù),本文給大家介紹了Go語言中validation庫不能校驗零值問題的解決方法,需要的朋友可以參考下
    2024-08-08
  • GO語言中ni,零值與空結(jié)構(gòu)體的使用

    GO語言中ni,零值與空結(jié)構(gòu)體的使用

    Go語言為Java開發(fā)者帶來了一些新概念,如零值、nil和空結(jié)構(gòu)體,理解這些概念有助于Go語言的學(xué)習(xí)和應(yīng)用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • 執(zhí)行g(shù)o?vendor第三方包版本沖突問題解決

    執(zhí)行g(shù)o?vendor第三方包版本沖突問題解決

    這篇文章主要為大家介紹了執(zhí)行g(shù)o?vendor時,第三方包go版本沖突問題的解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Golang中常見加密算法的總結(jié)

    Golang中常見加密算法的總結(jié)

    這篇文章主要為大家詳細介紹了Golang中常見的一些加密算法的實現(xiàn),文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • Go錯誤處理的幾種方式

    Go錯誤處理的幾種方式

    在Go語言中,錯誤處理是一種重要的編程模式,它用于處理可能出現(xiàn)的錯誤或異常情況,本文就來介紹一下Go錯誤處理的幾種方式,感興趣的可以了解一下
    2023-11-11
  • 關(guān)于Golang獲取當(dāng)前項目絕對路徑的問題

    關(guān)于Golang獲取當(dāng)前項目絕對路徑的問題

    這篇文章主要介紹了Golang獲取當(dāng)前項目絕對路徑的問題,通常的做法是go run用于本地開發(fā),用一個命令中快速測試代碼確實非常方便;在部署生產(chǎn)環(huán)境時,我們會通過go build構(gòu)建出二進制文件然后上傳到服務(wù)器再去執(zhí)行,那么會產(chǎn)生什么問題呢?感興趣的朋友一起看看吧
    2022-04-04
  • golang爬蟲colly?發(fā)送post請求

    golang爬蟲colly?發(fā)送post請求

    本文主要介紹了golang爬蟲colly?發(fā)送post請求實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • golang?gorm學(xué)習(xí)之如何指定數(shù)據(jù)表

    golang?gorm學(xué)習(xí)之如何指定數(shù)據(jù)表

    在sql中首先要指定是從哪張表中查詢,所以這篇文章小編就來帶大家一起看一下gorm是如何根據(jù)model來自動解析表名的,感興趣的小伙伴可以了解下
    2023-08-08
  • 解決golang編譯提示dial tcp 172.217.160.113:443: connectex: A connection attempt failed(推薦)

    解決golang編譯提示dial tcp 172.217.160.113:443: con

    這篇文章主要介紹了解決golang編譯提示dial tcp 172.217.160.113:443: connectex: A connection attempt failed,此問題完美解決,需要的朋友可以參考下
    2023-02-02

最新評論

平泉县| 和静县| 团风县| 读书| 武宁县| 井冈山市| 静宁县| 兰坪| 美姑县| 德兴市| 新闻| 开阳县| 赤壁市| 读书| 新蔡县| 晋中市| 彭州市| 海林市| 特克斯县| 壤塘县| 运城市| 浦北县| 阳泉市| 威海市| 延安市| 北票市| 东乡县| 贡嘎县| 永清县| 莒南县| 青海省| 哈尔滨市| 剑川县| 梅河口市| 鄱阳县| 沁阳市| 揭东县| 苍山县| 开化县| 洛阳市| 偃师市|