Lua 编程中的闭包是什么?
在Lua中,任何函数都是一个闭包。从狭义上讲,闭包是一个匿名函数,就像您示例中的返回函数一样。
闭包是一流的:它们可以分配给变量,传递给函数并从它们返回。它们可以是Lua表中的键和值。
与C++或PHP不同,Lua中的闭包可以访问局部范围内的所有变量——上值,无需显式声明上值。当代码执行离开设置它们的块时,上值仍然存在。
现在我们知道闭包是什么以及它为什么有用,让我们举个例子看看它是如何工作的。
示例
考虑下面显示的例子-
function simpleCounter()
local i = 0
return function () -- anonymous function
i = i + 1
return i
end
end
c1 = simpleCounter()
print(c1()) --> 1
print(c1()) --> 2
c2 = simpleCounter()
print(c2()) --> 1
print(c1()) --> 3
print(c2()) --> 2输出结果1 2 1 3 2
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练