比较golang中的两个结构体如数组[closed]

jv4diomz  于 2022-12-07  发布在  Go
关注(0)|答案(1)|浏览(234)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。

这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
10天前关闭。
Improve this question
我尝试比较Golang中数组类型的两个结构体,以了解从Web剪贴中获得的struct1是否等于从数据库中获取的struct2。这是我认为能够了解外部Web和我的数据库之间是否有变化的方法。
结构体为:

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))

结果:无相等
结构等于:假的

tjvv9vkg

tjvv9vkg1#

在第一个if子句中,你比较的是两个变量的内存地址而不是它们的值,在第二个if子句中(使用reflect.DeepEqual),你比较的是它们的值。

相关问题