你能在Lua中创建匿名代码块吗



在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。

最新更新