登录
首页 >  Golang >  Go问答

go-cmp 比较 2 个结构时将空接口值视为 int 和 flat64

来源:stackoverflow

时间:2024-04-16 10:42:33 104浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《go-cmp 比较 2 个结构时将空接口值视为 int 和 flat64》,聊聊,我们一起来看看吧!

问题内容

所以我正在使用 go-cmp github.com/google/go-cmp/cmp。比较 2 个结构。 两个结构体的类型相同。在比较结果时,我发现以下差异。

我使用的是go v1.12

type sample struct{
   field1 map[string]interface
}
var a sample
var b sample

cmp.diff(a,b)


// somewhere in code i do this
a.field1["sample"] = 1 // this is optional.

因此,如果我比较 a 和 b,我会看到差异,它将相同的字段解释为 int(0) 和 float64(0)

-: int(0)
+: float64(0)

我预计差异为零


解决方案


由于该结构是从 json 中解组的,因此 json 将所有数字视为浮点数

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>