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

Pud*_*ler 5 lua anonymous

在诸如C之类的编程语言中,您可以创建一个匿名代码块来将变量的范围限制在块内,可以使用Lua完成相同的操作吗?

如果是这样,以下C代码的Lua等价物是什么?

void function()
{
    {
        int i = 0;
        i = i + 1;
    }

    {
        int i = 10;
        i = i + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*per 7

你想用do...end.从手册:

可以明确分隔块以生成单个语句:

stat ::= do block end
Run Code Online (Sandbox Code Playgroud)

显式块对于控制变量声明的范围很有用.显式块有时也用于在另一个块的中间添加returnbreak声明

function fn()
    do
        local i = 0
        i = i + 1
    end
    do
        local i = 10
        i = i + 1
    end
end
Run Code Online (Sandbox Code Playgroud)


Joe*_*ang 5

您可以使用关键字do&分隔块end.

参考:Lua编程