这些天我最喜欢的语言是Lua。我只有一个问题,为什么它的默认行为是函数中的变量是全局的?在类似的语言Icon中,有一个关键字“global”,当一个人真正想要使用全局而不是自然行为来默认为local时使用它(我在五分钟之前再次被它咬了)。如果有人能告诉我背后的理性(比如我所知道的范围困难导致Lua中没有“continue”关键字),我会感觉更好。
答案 0 :(得分:19)
请参阅Why aren't variables locally scoped by default?中的Lua uFAQ。
当它们在本地上下文中时,只显式声明全局变量,这当然很容易。简短的回答是Lua不是Python,但实际上有很好的理由说明为什么必须明确声明词法范围的局部变量。请参阅wiki page。