我目前正在使用go-cmp
包来比较结构体的相等性。出于测试目的,我需要比较两种不同类型的结构体,这些结构体应该具有相同的字段和值。
作为一个最简示例,我遇到了这样的问题:cmp.Equal()
函数对于不同的类型返回false
,即使它们具有相同的字段和值。
type s1 struct {
Name string
}
type s2 struct {
Name string
}
p1 := s1{Name: "John"}
p2 := s2{Name: "John"}
fmt.Println(cmp.Equal(p1, p2)) // false
这是可以理解的,因为这两种类型是不同的,但是否有一种方法可以指示cmp.Equal()
忽略类型,只查看字段呢?