Как вызвать функцию из другого скрипта в LUA? - PullRequest
0 голосов
/ 07 января 2019

У меня есть корневая папка с именем «root». В этой папке у меня есть еще 2 директории, каждая с одной папкой, каждая со скриптом:

/root/script01/client_script01/main.lua

В этом скрипте у меня есть это:

local function OpenWindow()
    stuff
end

И

/root/script02/client_script02/main.lua

Я хочу использовать функцию OpenWindow() во втором скрипте!

1 Ответ

0 голосов
/ 07 января 2019

Вы правы, что можете позвонить OpenWindow из client_script02/main.lua, если вы не используете ключевое слово local в определении.

Это, однако, не лучшая практика. Я не уверен в специфике вашей среды или намерений, но в большинстве случаев лучше создать модуль lua и использовать функцию require для его загрузки.

Это лучше, потому что показывает отношения между файлами, показывая, что client_script02/main.lua требует, чтобы client_script01/main.lua был загружен для правильной работы.

Ваш модуль может выглядеть примерно так:

local client_script01 = {}

client_script01.OpenWindow = function()
    --stuff
end

return client_script01

Другой скрипт примерно такой:

local cs01 = require('client_script01')

do
    cs01.OpenWindow()
    --stuff
end

Вам также необходимо настроить файловые структуры в соответствии с этим соглашением, исходя из того, как функция require преобразует поиск: lua-users - Package Path

...