-1

谁能解释 Lua 如何解决这种歧义?我可以定义一个全局x = 10然后执行local x = x. 从文档中不清楚解释器如何处理这种情况。编辑:很明显,我看错了部分。别哭。

从观察看来,从那里开始,在本地分配之后的块内,标签x将被假定为引用本地。

提前致谢。

4

1 回答 1

0

文档清楚地解释了这一点。

标识符总是首先与本地人进行检查,从最里面的可用范围开始。如果它不引用可见的局部变量,则它引用全局变量。

至于local x = x,局部变量的作用域在所有对其求值的表达式求值之后开始所以首先x评估(使用现有的可见性),这导致 的值x。然后这个值被设置到一个新定义的局部变量x中。

于 2013-03-25T00:56:42.623 回答