我正在尝试比较 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))结果:不等于结构相等:假
1 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
首先,如果您要比较两个变量的内存地址而不是它们的值。在第二个 if 子句中(使用 reflect.DeepEqual),您正在比较它们的值。
- 1 回答
- 0 关注
- 77 浏览
添加回答
举报
0/150
提交
取消