【笔记】go语言--函数式编程

【笔记】go语言--函数式编程

简单来说,go语言的函数式编程体现的是一个闭包的情况

函数式编程 VS 函数指针

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

”正统“函数式编程

  • 不可变性:不能有状态,只有常量和函数
  • 函数只能有一个参数
  • 可实现也可不实现

闭包:由函数体,局部变量,自由变量组成,自由变量可以指向和函数体发生连接的外部环境里面定义的变量

func adder() func(int) int {
//sum自由变量
	sum := 0
	return func(v int) int {
		sum += v
		return sum
	}
}
//adder()函数返回的是一个闭包,而不仅仅是一段静态的代码
posted @ 2022-02-10 19:23  DbWong_0918  阅读(194)  评论(0编辑  收藏  举报