我正在嘗試比較 Golang 中數(shù)組類型的 2 個(gè)結(jié)構(gòu),以便了解從網(wǎng)絡(luò)抓取中獲得的 struct1 是否等于 struct 2,后者是從數(shù)據(jù)庫(kù)中獲取的數(shù)據(jù)。這是我認(rèn)為能夠知道外部網(wǎng)絡(luò)和我的數(shù)據(jù)庫(kù)之間是否發(fā)生變化的方式。結(jié)構(gòu)是:type Exchange struct { Name string `gorm:"Column:name" json:"name"` Buy float64 `gorm:"Column:buy" json:"buy"` Sell float64 `gorm:"Column:sell" json:"sell"`}咨詢后的結(jié)果來(lái)自報(bào)廢:&[{Dólar 38.5 41 } {Euro 38.82 43.57 } {P. Argentino 0.05 0.35 } {Real 6.95 8.95 }]來(lái)自網(wǎng)絡(luò)&[{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))結(jié)果:不等于結(jié)構(gòu)相等:假
1 回答

慕婉清6462132
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
首先,如果您要比較兩個(gè)變量的內(nèi)存地址而不是它們的值。在第二個(gè) if 子句中(使用 reflect.DeepEqual),您正在比較它們的值。
- 1 回答
- 0 關(guān)注
- 142 瀏覽
添加回答
舉報(bào)
0/150
提交
取消