一.函数式编程 VS 函数指针
- 函数是go语言中的一等公民,参数 变量 返回值都可以是函数
- go语言并不是正统的函数式编程,go语言的函数式编程主要体现在 "闭包" 上
- 高阶函数
- 关于"闭包"的理解:阮一峰_学习Javascript闭包(Closure) 廖雪峰_javascript闭包 Golang-函数式编程(闭包)
注:正统的函数式编程:
- 不可变性:不能有状态,只有常量和函数
- 函数只能有一个参数
二.闭包
函数可以嵌套定义,即在一个函数内部可以定义另一个函数,有了嵌套函数这种结构,便会产生闭包问题.Go不能在函数内部显式嵌套定义函数,但是可以定义一个匿名函数.
理解闭包最方便的方法就是将闭包函数看成一个类,一个闭包函数调用就是实例化一个类,然后