Go 如何比较函数类型的相等性?
我正在做一些测试,并试图测试一些函数类型是否相等。我有:Go 如何比较函数类型的相等性?,go,Go,我正在做一些测试,并试图测试一些函数类型是否相等。我有: 我在文档中找不到任何关于比较函数的内容,我知道我肯定遗漏了一些重要的内容,例如reflect.DeepEqual为什么不能正确地用于比较函数。您可以像这样比较函数,请在此处阅读有关函数表示的更多信息: 例如:这只是你的出发点 func main() { a := []someFunc{sf1, sf2} b := []someFunc{sf1, sf2} for idx, f := range a {
我在文档中找不到任何关于比较函数的内容,我知道我肯定遗漏了一些重要的内容,例如reflect.DeepEqual为什么不能正确地用于比较函数。您可以像这样比较函数,请在此处阅读有关函数表示的更多信息: 例如:这只是你的出发点
func main() {
a := []someFunc{sf1, sf2}
b := []someFunc{sf1, sf2}
for idx, f := range a {
fmt.Println("Index: ", idx, funcEqual(f, b[idx]))
}
}
输出:
Index: 0 true
Index: 1 true
播放链接:如果我像我的示例中那样比较两个结构,那么最好只重置这些字段,然后比较结构?是的,对于结构重置字段
f
,使用reflect.DeepEqual
进行比较。
func main() {
a := []someFunc{sf1, sf2}
b := []someFunc{sf1, sf2}
for idx, f := range a {
fmt.Println("Index: ", idx, funcEqual(f, b[idx]))
}
}
Index: 0 true
Index: 1 true