如何用Lua闭包和简易迭代器构建长尾生成器?
- 内容介绍
- 文章标签
- 相关推荐
本文共计895个文字,预计阅读时间需要4分钟。
闭包,指的是将函数定义在另一个函数内部,并可以访问外部函数作用域中的变量的函数。简单来说,如果将一个函数定义在另一个函数内部,那么这个内部函数就可以访问外部函数的局部变量,这种特性称为闭包。这是闭包的一个基本特性。
1、什么是闭包
闭包,又称闭合函数(closure)。通常,如果将一个函数写在另一个函数内,那么这个在内部的函数就可以访问到外部函数中的局部变量,这个特征就是词法域,有些资料上也叫它词法定界。闭包指的是一个内部函数,它可以访问一个或者多个外部函数的局部变量。那么可以看出,闭包就是由内部函数、外部函数,以及外部函数中创建的局部变量(upvalue)组成。lua的作者说,lua中只有closure,而不存在“函数”,因为函数本身就是一种特殊的closure,不过我们在平时为了不引起混淆,就采用术语“函数”来代替closure。本文共计895个文字,预计阅读时间需要4分钟。
闭包,指的是将函数定义在另一个函数内部,并可以访问外部函数作用域中的变量的函数。简单来说,如果将一个函数定义在另一个函数内部,那么这个内部函数就可以访问外部函数的局部变量,这种特性称为闭包。这是闭包的一个基本特性。

