为什么Lua默认为全局变量?

And*_*rsH 19 lua

这些天我最喜欢的语言是Lua.我只有一个问题,为什么它的默认行为是函数中的变量是全局的?在类似的语言Icon中,有一个关键字"global",当一个人真正想要使用全局而不是自然行为来默认为local时使用它(我在五分钟之前再次被它咬了).如果有人能告诉我背后的理性(比如我所知道的范围困难导致Lua中没有"继续"关键字),我会对此感觉更好.

lhf*_*lhf 19

请参阅默认情况下为什么不在本地作用域变量?Lua uFAQ中.

当它们位于本地上下文中时,仅显式声明全局变量当然很容易.简短的回答是Lua不是Python,但实际上有很好的理由说明为什么必须明确声明词法范围的局部变量.查看维基页面.

  • +1对于Lua uFAQ,这是一个非常推荐的阅读. (3认同)
  • [“问题在于,如果没有本地声明,您将无法说出变量在本地的位置。(RiciLake)](http://lua-users.org/lists/lua-l/2006-10/msg00063.html)[通过引用的Lua用户的Wiki]-简洁明了。 (2认同)