比较 golang 中的数组等两个结构

我正在尝试比较 Golang 中数组类型的 2 个结构,以便了解从网络抓取中获得的 struct1 是否等于 struct 2,后者是从数据库中获取的数据。这是我认为能够知道外部网络和我的数据库之间是否发生变化的方式。


结构是:


type Exchange struct {

    Name          string    `gorm:"Column:name" json:"name"`

    Buy           float64   `gorm:"Column:buy" json:"buy"`

    Sell          float64   `gorm:"Column:sell" json:"sell"`

}

咨询后的结果来自报废:


&[{Dólar 38.5  41 } {Euro 38.82  43.57 } {P. Argentino 0.05  0.35 } {Real 6.95  8.95 }]

来自网络


&[{Dólar 38.5 41} {Euro 38.82 43.57} {P. Argentino 0.05 0.35} {Real 6.95 8.95}]


我的代码:


    fmt.Println(exchanges)

    dbExchanges := getExchangesFromDB()

    fmt.Println(dbExchanges)

    if exchanges == dbExchanges {

        fmt.Println("is equal")

    } else {

        fmt.Println("no is equal")

    }


    fmt.Println("Struct equal: ", reflect.DeepEqual(exchanges, dbExchanges))

结果:不等于


结构相等:假


斯蒂芬大帝
浏览 162回答 1
1回答

慕婉清6462132

首先,如果您要比较两个变量的内存地址而不是它们的值。在第二个 if 子句中(使用 reflect.DeepEqual),您正在比较它们的值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go