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