特征:
函数是一等公民:参数,变量,返回值都可以是函数高阶函数函数 -> 闭包
严格意义上的“正统”函数式编程
不可变性:不能有状态,只有常量和函数函数只能有一个参数
闭包
// 闭包示例
func adder
() func
(int
) int
{
sum :
= 0
return func
(v int
) int
{
sum +
= v
return sum
}
}
func main
() {
a :
= adder
()
for i:
=0
; i
< 10
; i++
{
fmt.Printf
("0+1+ ... + %d = %d\n", i, a
(i
))
}
}
return func
(v int
) int
{
sum +
= v
return sum
}
加 sum的引用组成的环境称为闭包