我正在嘗試比較 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 關注
- 130 瀏覽
添加回答
舉報
0/150
提交
取消