Нужно объявить локальные функции или переменные внутри локальной таблицы? - PullRequest
2 голосов
/ 16 мая 2019

В Луа, если у меня есть

local table={}

table.variableA=1 -- this is local?


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

а когда я объявляю функции внутри локальной таблицы, они все локальные?

1 Ответ

3 голосов
/ 16 мая 2019

Да, но нет.

Функции не локальные , это просто значения.Это переменные локальные или нет.Например, представьте себе:

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

У вас есть две переменные, одна глобальная и одна локальная, и обе они содержат одно и то же значение функции.

Когда вы сохраняете функцию в таблице,это не глобально и не локально, так как не является переменной.Таблица может храниться в локальной переменной, но это не влияет на саму функцию, только там, где вы можете получить к ней доступ.

Внутри конструктора таблицы, то есть между фигурными скобками { } вы не можете использовать ключевое слово local, потому что в этом нет никакого смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...