阅读规范后,我得到了:如果所有字段都具有可比性,则结构值具有可比性。如果它们对应的非空白字段相等,则两个结构值相等。这对我来说意味着这样做structA == structB意味着结构中每个非空白字段的值都将fieldA == fieldB应用于它。那么为什么我们需要一个深度相等的概念呢?因为如果结构具有也是结构的字段,则提供的信息向我暗示将使用==也检查这些字段的相等性,所以肯定会触发向下遍历对象图吗?
1 回答

元芳怎么了
TA贡献1798条经验 获得超7个赞
你缺少的是指针。在执行==
on 指针时,您应该检查指针值(两个内存地址)还是指向的值(两个变量)?当比较切片或映射时(两者都可以同化为由指针组成的结构)?
golang 的作者的决定是对==
算子做严格的比较,并reflect.DeepEqual
为那些想要比较他们切片内容的人提供方法。
我个人reflect.DeepEquals
在测试中大量使用,因为函数的输出值可能是一个指针,但我真正想比较的是输出值的内容。
- 1 回答
- 0 关注
- 213 浏览
添加回答
举报
0/150
提交
取消