Lua:局部变量标签和全局变量标签之间的歧义如何解决?

时间:2013-03-25 00:50:52

标签: lua

任何人都可以解释Lua如何解决这种模棱两可的问题? 我可以定义全局x = 10,然后执行local x = x从文档中不清楚解释器如何处理这种情况。编辑:很明显,我看错了部分。不要哭。

从观察开始,似乎从那里继续进行本地分配后,标签x将被假定为引用本地。

提前致谢。

1 个答案:

答案 0 :(得分:0)

The documentation explains this clearly.

始终首先检查标识符,从最内层可用范围开始。如果它没有引用可见的局部变量,那么它引用一个全局变量。

对于local x = x,局部变量的范围在评估评估它的所有表达式之后启动。因此,首先评估x(使用现有的可见性),这会产生x的值。然后将此值设置为名为x的新定义的局部变量。