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

在lua中,如果我有

local table={}

table.variableA=1 --这是本地的吗?

local table2=
{
    local variable2=2 --这与上面的是相同的吗?
}

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

点赞
用户4984564
用户4984564

是和不是。

函数并不是本地的,它们只是值。变量才有本地和非本地之分。比如,考虑下面的代码:

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

你有两个变量,一个是全局的,一个是本地的,它们都包含同一个函数值。

当你将一个函数存储在一个表中时,它既不是全局的也不是本地的,因为它不是一个变量。这个表可以存储在一个本地变量中,但这并不影响函数本身,只影响你可以从哪里访问它。

在表构造器中,也就是大括号 { } 之间,你不能使用 local 关键字,因为那里没有意义。

2019-05-16 12:50:12