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

时间:2016-01-11 00:49:41

标签: lua anonymous

在C等编程语言中,您可以创建一个匿名代码块来将变量的范围限制在块内,可以用Lua完成吗?

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

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

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

3 个答案:

答案 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

参考:Programming in Lua

答案 2 :(得分:1)

运行匿名函数的过程如下: (function(a,b) print(a+b) end)(1,4)

输出5。