在阅读了规格之后,我得到了:
如果所有字段都是可比的,则结构值是可比较的。如果两个结构值对应的非空白字段相等,则两个结构值相等.
对我来说,这意味着执行structA == structB意味着结构中每个非空白字段的值将被应用到fieldA == fieldB中。那么,为什么我们需要一个深度平等的概念呢?因为如果结构中的字段也是结构化的,那么所提供的信息就意味着这些字段也将使用==被检查是否相等,所以这肯定会触发遍历对象图吗?
发布于 2016-03-16 18:10:47
你缺少的是指针。当对指针执行==时,应该检查指针值(两个内存地址)还是指向值(两个vars)?当比较切片或映射时(这两者都可以与由指针组成的结构同化)?
戈朗作者的决定是与==算子进行严格的比较,并为那些想要比较切片内容的人提供reflect.DeepEqual方法。
我个人在测试中广泛使用了reflect.DeepEquals,因为函数的输出值可能是指针,但我真正想比较的是输出值的内容。
https://stackoverflow.com/questions/36043575
复制相似问题