**已关闭。**此问题为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))
结果:无相等
结构等于:假的
1条答案
按热度按时间tjvv9vkg1#
在第一个if子句中,你比较的是两个变量的内存地址而不是它们的值,在第二个if子句中(使用reflect.DeepEqual),你比较的是它们的值。