小编use*_*829的帖子

Lua中的范围规则

我正在测试Lua的范围并注意到一些意外的事情.以下代码不会打印localMainVariable.

function functionScope()
    print( "\nIn function")
    print( "globalMainVariable: " .. globalMainVariable )
    if (localMainVariable ~= nil) then print( "localMainVariable: " .. localMainVariable ) end
end

globalMainVariable = "Visible"
local localMainVariable = "Visible"
functionScope()
Run Code Online (Sandbox Code Playgroud)

但是下面的代码确实打印了localMainVariable.

globalMainVariable = "Visible"
local localMainVariable = "Visible"

function functionScope()
    print( "\nIn function")
    print( "globalMainVariable: " .. globalMainVariable )
    if (localMainVariable ~= nil) then print( "localMainVariable: " .. localMainVariable )  end
end

functionScope()
Run Code Online (Sandbox Code Playgroud)

我知道它与声明localMainVariable的位置有关,但我认为将其设置为local会限制变量的范围.什么是实际规则?

谢谢

lua scope

6
推荐指数
1
解决办法
390
查看次数

标签 统计

lua ×1

scope ×1