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

在编程语言如C中,你可以创建一个匿名代码块来限制变量的范围在块内,Lua能做到吗?

如果可以的话,以下是C代码的Lua等效代码:

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

    do
        local i = 10
        i = i + 1
    end
end
点赞
用户142162
用户142162

你想要使用 do...end。来自手册

一个块可以被显式地分隔成单个语句:

stat ::= do block end

显式块有助于控制变量声明的作用域。显式块有时也用于在另一个块的中间添加 returnbreak 语句。

function fn()
    do
        local i = 0
        i = i + 1
    end
    do
        local i = 10
        i = i + 1
    end
end
2016-01-11 00:52:43
用户830098
用户830098

你可以使用关键字 doend 来限定一个代码块。

参考资料:Lua 编程

2016-01-11 00:55:44
用户4900426
用户4900426

运行一个匿名函数的步骤如下:

(function(a,b) print(a+b) end)(1,4)

它的输出是 5。

2016-01-11 22:20:27