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

go 判斷兩個 slice/struct/map 是否相等的實(shí)例

 更新時間:2020年12月25日 09:18:06   作者:地質(zhì)隊(duì)煉丹師  
這篇文章主要介紹了go 判斷兩個 slice/struct/map 是否相等的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

可以通過 reflect.DeepEqual 比較兩個 slice/struct/map 是否相等:

package main 
import (
 "fmt"
 "reflect"
)
 
type A struct {
 s string
}
 
func main() {
 
 a1 := A{s: "abc"}
 a2 := A{s: "abc"}
 if reflect.DeepEqual(a1, a2) {
  fmt.Println(a1, "==", a2)
 }
 
 b1 := []int{1, 2}
 b2 := []int{1, 2}
 if reflect.DeepEqual(b1, b2) {
  fmt.Println(b1, "==", b2)
 }
 
 c1 := map[string]int{"a": 1, "b": 2}
 c2 := map[string]int{"a": 1, "b": 2}
 if reflect.DeepEqual(c1, c2) {
  fmt.Println(c1, "==", c2)
 }
}

補(bǔ)充:go語言判斷 slice,array,map中是否存在某個元素

最近在用go重構(gòu)以前python寫的項(xiàng)目。遇到一些問題,總結(jié)一下。自己水平比較菜,遇到問題較低級,自己總結(jié)一下,免得忘了

很簡單的需求,判斷某個元素是否在 slice,array ,map中 。其實(shí)很簡單。但是還是python最簡單啊。。。。。。。

func Contain(obj interface{}, target interface{}) (bool, error) {
 targetValue := reflect.ValueOf(target)
 switch reflect.TypeOf(target).Kind() {
 case reflect.Slice, reflect.Array:
 for i := 0; i < targetValue.Len(); i++ {
 if targetValue.Index(i).Interface() == obj {
 return true, nil
 }
 }
 case reflect.Map:
 if targetValue.MapIndex(reflect.ValueOf(obj)).IsValid() {
 return true, nil
 }
 } 
 return false, errors.New("not in array")
}

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • VSCode Golang dlv調(diào)試數(shù)據(jù)截?cái)鄦栴}及處理方法

    VSCode Golang dlv調(diào)試數(shù)據(jù)截?cái)鄦栴}及處理方法

    這篇文章主要介紹了VSCode Golang dlv調(diào)試數(shù)據(jù)截?cái)鄦栴},本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Go語言中for和range的性能比較

    Go語言中for和range的性能比較

    這篇文章主要為大家詳細(xì)介紹了Go語言中for和range語句的使用以及性能比較,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-07-07
  • Golang中的sync.WaitGroup用法實(shí)例

    Golang中的sync.WaitGroup用法實(shí)例

    這篇文章主要介紹了Golang中的sync.WaitGroup用法實(shí)例,WaitGroup的用途,它能夠一直等到所有的goroutine執(zhí)行完成,并且阻塞主線程的執(zhí)行,直到所有的goroutine執(zhí)行完成,需要的朋友可以參考下
    2015-07-07
  • GoLang中的timer定時器實(shí)現(xiàn)原理分析

    GoLang中的timer定時器實(shí)現(xiàn)原理分析

    Timer中對外暴露的只有一個channel,這個 channel也是定時器的核心。當(dāng)計(jì)時結(jié)束時,Timer會發(fā)送值到channel中,外部環(huán)境在這個 channel 收到值的時候,就代表計(jì)時器超時了,可與select搭配執(zhí)行一些超時邏輯
    2023-02-02
  • Go語言crypto包創(chuàng)建自己的密碼加密工具實(shí)現(xiàn)示例

    Go語言crypto包創(chuàng)建自己的密碼加密工具實(shí)現(xiàn)示例

    Go語言借助它的簡單性和強(qiáng)大的標(biāo)準(zhǔn)庫,實(shí)現(xiàn)一個自己的密碼加密工具,本文將會結(jié)合代碼示例深入探討如何使用Go語言的crypto包來實(shí)現(xiàn)自己的加密工具
    2023-11-11
  • Go高級特性之并發(fā)處理http詳解

    Go高級特性之并發(fā)處理http詳解

    Golang?作為一種高效的編程語言,提供了多種方法來實(shí)現(xiàn)并發(fā)發(fā)送?HTTP?請求,本文將深入探討?Golang?中并發(fā)發(fā)送?HTTP?請求的最佳技術(shù)和實(shí)踐,希望對大家有所幫助
    2024-02-02
  • Go語言中的自定義類型你了解嗎

    Go語言中的自定義類型你了解嗎

    自定義類型是 Go 語言中非常重要的概念之一,通過自定義類型,我們可以更好地封裝數(shù)據(jù)、組織代碼,提高程序的可讀性和可維護(hù)性。本文將從以下幾個方面介紹 Go 自定義類型的相關(guān)知識,感興趣的可以了解一下
    2023-04-04
  • Go語言學(xué)習(xí)之goroutine詳解

    Go語言學(xué)習(xí)之goroutine詳解

    Goroutine是建立在線程之上的輕量級的抽象。它允許我們以非常低的代價在同一個地址空間中并行地執(zhí)行多個函數(shù)或者方法,這篇文章主要介紹了Go語言學(xué)習(xí)之goroutine的相關(guān)知識,需要的朋友可以參考下
    2020-02-02
  • Golang?鎖原理的簡單實(shí)現(xiàn)

    Golang?鎖原理的簡單實(shí)現(xiàn)

    本文主要介紹了Golang?鎖原理的簡單實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • golang 網(wǎng)絡(luò)框架之gin的使用方法

    golang 網(wǎng)絡(luò)框架之gin的使用方法

    這篇文章主要介紹了golang 網(wǎng)絡(luò)框架之gin的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評論

民丰县| 寻甸| 宜兰县| 阿克苏市| 兴安县| 灵川县| 舒兰市| 洪湖市| 漠河县| 眉山市| 巨野县| 大连市| 阜康市| 安陆市| 辛集市| 盱眙县| 青河县| 灌南县| 柯坪县| 鄂托克前旗| 宜兰市| 永丰县| 江川县| 宁德市| 石河子市| 台南县| 桂阳县| 天峻县| 股票| 韶山市| 迁安市| 寻甸| 扶风县| 皮山县| 博兴县| 苏州市| 龙江县| 多伦县| 密云县| 元阳县| 兴山县|