“为什么可以?”;return";及;“中断”;是否仅作为Lua代码块中的最后一条语句出现?

“为什么可以?”;return";及;“中断”;是否仅作为Lua代码块中的最后一条语句出现?,lua,return,break,Lua,Return,Break,正如Lua手册所述: 我只对任何技术限制或约束感兴趣,而不是关于品味或编码标准的答案 对我来说,这似乎是一个奇怪的限制,因为挂起的return可以很容易地与语句do return end一起添加到Lua邮件列表上的一封电子邮件中: 对于return语句,这是因为否则它可能是不明确的: ... return f(1,2,3) ... 这是一个没有值的返回还是对f的尾部调用 对break语句的限制是 带标签的实验性中断。“break f(x)”可以是“break f” 后跟“(x)” 对于Lua

正如Lua手册所述:

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

对我来说,这似乎是一个奇怪的限制,因为挂起的
return
可以很容易地与语句
do return end

一起添加到Lua邮件列表上的一封电子邮件中:

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

...
return
f(1,2,3)
...
这是一个没有值的返回还是对f的尾部调用

对break语句的限制是 带标签的实验性中断。“break f(x)”可以是“break f” 后跟“(x)”

对于Lua 5.2及以上版本,已取消了对
中断的限制。

给Lua邮件列表上的一位Lua作者的电子邮件:

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

...
return
f(1,2,3)
...
这是一个没有值的返回还是对f的尾部调用

对break语句的限制是 带标签的实验性中断。“break f(x)”可以是“break f” 后跟“(x)”


对于Lua 5.2及以上版本,
中断
的限制已取消。

您为什么希望在
返回
后有代码?我只需要在调试时使用它,以避免解析歧义(或大量的前瞻性)。请参阅。@siffiejoe-谢谢,该链接有助于解释设计选择。请随意回答这个问题。由于Lua 5.2,break不必是循环块中的最后一条语句。为什么要在循环结束/函数完成后使用代码?为什么要在
返回后使用代码?我只需要在调试时使用它,以避免解析歧义(或大量的前瞻性)。请参阅。@siffiejoe-谢谢,该链接有助于解释设计选择。请随意回答这个问题。既然LUA5.2,break不必是循环块中的最后一个语句。为什么在循环结束/函数完成后还要代码?