我知道这是一个非常基本的问题,但我对 lua 中的变量及其作用域感到非常困惑local,例如,如果我写local x=12,则意味着该变量x是局部变量并且它的值是12,但是如果我写local x& in下一行x=12,这是否与前面的情况相同或被x=12视为全局变量?
您可以将其视为两个完全独立的事物:
local x在局部作用域中创建一个“槽”来保存一个值,即变量。该变量名为x. 从那时起,直到您退出该范围,任何对 的引用都x将引用该本地x.
x = 12将一个值放入变量中x。如果您之前创建了一个名为 x 的本地槽,那么它就会存放在那里。如果没有本地x范围,它将进入全局范围。
local x = 12只是将这两者结合起来的简写,创建一个局部变量并同时为其赋值。
所以是的,你的两种情况实际上是等效的。
local x
x = 12
Run Code Online (Sandbox Code Playgroud)
和
local x = 12
Run Code Online (Sandbox Code Playgroud)
做同样的事。