可以把函数作为另外一个函数的参数 :
package main
func add(a int, b int) int {
return a + b
}
// add 函数作为 addDouble 函数的参数
func addDouble(a int, b int, f func(int, int) int) int {
return f(a, b) * 2
}
func main() {
res := addDouble(1, 2, add)
println(res)
}
函数也可以作为一个函数的返回值 :
package main
func add(a int, b int) int {
return a + b
}
// add 函数将作为 giveMeAFunc 函数的返回值
func giveMeAFunc() func(int, int) int {
return add
}
func main() {
funRun := giveMeAFunc()
println(funRun(1, 2))
}