在C等编程语言中,您可以创建一个匿名代码块来将变量的范围限制在块内,可以用Lua完成吗?
如果是这样,以下C代码的Lua等价物是什么?
void function()
{
{
int i = 0;
i = i + 1;
}
{
int i = 10;
i = i + 1;
}
}
答案 0 :(得分:7)
您想使用do...end
。来自manual:
可以明确分隔块以生成单个语句:
stat ::= do block end
显式块对于控制变量的范围很有用 声明。显式块有时也用于添加
return
或break
声明在另一个块的中间
function fn()
do
local i = 0
i = i + 1
end
do
local i = 10
i = i + 1
end
end
答案 1 :(得分:5)
您可以使用关键字do
&分隔一个块。 end
。
答案 2 :(得分:1)
运行匿名函数的过程如下:
(function(a,b) print(a+b) end)(1,4)
输出5。