闭包
是在以函数作为一等公民等编程语言中实现词法绑定等一种技术, 闭包
和 匿名函数
在一些语境下经常互为替换, 但严格来说 匿名函数
也即字面意义上等没有被赋予名称等函数, 而 闭包
实际上是函数的一个实例, 相对于常规函数, 闭包
可以捕捉环境上下文环境中的自由变量, 从一般定义来说即:
f(x) = g(x) + h(y)
这里函数 f(x)
可以表示为关于 x
和 y
的函数, 而函数 f
中无 y
的信息(相对的是 f(x, y)
), 即 y
是自由变量. 除了本文介绍的 Rust
外其他诸如 Swift
, Go
, Erlang
, JavaScript
, Python
等都有 闭包
.