为什么"return"和"break"只能作为Lua代码块中的最后一个语句出现?

Rob*_*ard 1 lua return break

正如Lua手册所述:http://www.lua.org/pil/4.4.html

我只对任何技术限制或约束感兴趣,而不是关于品味或编码标准的答案.

对我来说这似乎是一个奇怪的约束,因为挂起return可以很容易地添加声明do return end.

sif*_*joe 7

引用在Lua的邮件列表的电子邮件的Lua的作者之一:

对于return语句,这是因为否则它可能是不明确的:

...
return
f(1,2,3)
...
Run Code Online (Sandbox Code Playgroud)

这是一个没有值的回报或对f的尾调用吗?

对破坏声明的限制是实验性破坏标签的剩余部分."break f(x)"可以是"break f",然后是"(x)".

对于Lua 5.2及以上的限制break已被取消.