golang之高阶函数
怎么写一个golang高阶函数
首先高阶函数也是函数,相对于普通函数还是有点区别的,区别点在于:这个函数的形参列表或返回参数列表中存在数据类型为函数类型,这就是高阶函数。看下列代码:
package main
import "fmt"
type F func(int int) int
func main() {
var f F
f = func(int int) int {
return int * 2
}
fmt.Printf("f:%v", higher(12, f))
}
func higher(v int, f F) int {
return f(v)
}
可以看出higher的第二个参数为函数类型F,故higher就是一个高阶函数。
高阶函数有什么用?
我认为高阶函数就是使得你的部分程序逻辑动态生成,不至于写死。高阶函数往往和闭包联合使用