type add_func func(int, int) int
func add(a int, b int) int {
return a + b
}
func operate(op add_func, a int, b int) int {
return op(a, b)
}
func main() {
// c := add
sum := operate(add, 10, 20)
fmt.Print(sum)
}
例如上面的案例中,type即为定义一个新的类型,add_func为类型名称,func(int,int)为函数类型且传入两个整型参数,后面的int为返回的值的类型
operate函数中op即为定义的add_func函数类型
在主函数中调用的add函数,传入的参数与返回的参数类型与add_func类型相同,即可将其视为add_func型的参数传入operate函数中。
又或者像主函数中的c,将add赋值给c,c得到的并不是返回的一个整型,而是add函数的地址,若是将两者打印输出,可以看到它们都指向同一个地址。而且此时的c的类型也与add函数相同。
希望对大家有益,若有错误,请留言!!!