函数式编程

特征:

  1. 函数是一等公民:参数,变量,返回值都可以是函数
  2. 高阶函数
  3. 函数 -> 闭包

严格意义上的“正统”函数式编程

  1. 不可变性:不能有状态,只有常量和函数
  2. 函数只能有一个参数

闭包

函数式编程_第1张图片

// 闭包示例

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的引用组成的环境称为闭包

你可能感兴趣的:(其他)