1

我正在尝试学习 Lua 语言来为我公司的产品开发插件。为了帮助我学习(连同 PiL 书、参考手册和大量在线资源),我在阅读时尝试破译我们当前使用的插件。

我注意到的一件事是local变量列在最顶部并且没有设置为特定值。例如:local SendVarlocal EndVar

但后来,使用了 many function's 和localvar's。

我的问题:我了解“范围”globallocal变量。local function但是如果插件中没有's,那么 all 中是否使用了所有 local变量functions

对于任何混淆,我深表歉意。但我试图弄清楚如何在另一个使用其他 Lua 插件的程序中使用插件。当我说除非local function另有说明,否则所有local变量都该插件文件中使用时,我进行了疯狂的猜测。

我对么?

4

1 回答 1

2

在 Lua 中编写local语句时,您声明以下标识符将表示局部变量,无论这些语句是否实际初始化变量。

此外,Lua 中的局部变量具有块作用域,即它们在定义它们的块和每个封闭块中都是可见的。块是例如功能体,then-endelse-end块、do-end块等。

另外请记住,Lua 中的变量没有类型,它们的值有。

-- declares `a` as a local variable (having no value, i.e. `nil` value)
local a   
-- declares `b` as a local variable having 2 as value
local b = 2  
-- declares `f` as local var having a function as value
local f = function(x) return x * x end  

do
    -- `a`, `b` and `f` are visible here, because this is a block enclosed 
    -- in the block where those vars were declared

    local aa = 2

end

-- `aa` is not visible here, because it was declared in an inner block  
于 2013-09-17T19:47:43.867 回答