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
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短