是否需要在本地表中声明本地函数或变量?

时间:2019-05-16 08:18:19

标签: lua

如果有的话,在lua中

local table={}

table.variableA=1 -- this is local?


local table2=
{
    local variable2=2 -- this is the same that above?
}

当我在本地表中声明函数时,它们都是本地的吗?

1 个答案:

答案 0 :(得分:3)

是,但不是。

函数不是 local ,它们只是值。它是局部变量还是非局部变量。例如,想象一下:

function foo_global() print 'foo' end
local foo_local = foo_global

您有两个变量,一个是全局变量,一个是局部变量,它们都包含相同的函数值。

将函数存储到表中时,它既不是全局变量也不是局部变量,因为它不是变量。该表可以存储在局部变量中,但这并不会真正影响函数本身,只是可以在其中访问它。

在表构造函数内部,即在花括号{ }之间,您不能使用local关键字,因为在那里没有意义。