在C等编程语言中,您可以创建一个匿名代码块,将变量的范围限制在块内。Lua也可以这样做吗?
如果是这样的话,下面的C代码的Lua等价物是什么?
void function()
{
{
int i = 0;
i = i + 1;
}
{
int i = 10;
i = i + 1;
}
}
您想要使用do...end
。来自手册:
一个块可以显式地定界以生成一条语句:
stat ::= do block end
显式块可用于控制变量的范围声明。显式块有时也用于添加
return
或在另一个块中间的CCD_ 3语句
function fn()
do
local i = 0
i = i + 1
end
do
local i = 10
i = i + 1
end
end
您可以用关键字do
&end
。
参考:在Lua 中编程
运行匿名函数如下:(function(a,b) print(a+b) end)(1,4)
它输出5。