您可以在 Lua 中创建匿名代码块吗?

Can you create anonymous code blocks in Lua?

在 C 等编程语言中,您可以创建一个匿名代码块以将变量的范围限制在块内。Lua 也可以这样做吗?

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

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

    {
        int i = 10;
        i = i + 1;
    }
}

您想使用 do...end。来自 manual:

A block can be explicitly delimited to produce a single statement:

stat ::= do block end

Explicit blocks are useful to control the scope of variable declarations. Explicit blocks are also sometimes used to add a return or break statement in the middle of another block

function fn()
    do
        local i = 0
        i = i + 1
    end
    do
        local i = 10
        i = i + 1
    end
end

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

分隔块

参考:Programming in Lua

运行 一个匿名函数发生如下: (function(a,b) print(a+b) end)(1,4)

它输出 5。