Как вызвать функцию из другого скрипта в LUA?
У меня есть корневая папка с именем "root". В этой папке у меня есть еще 2 директории, каждая с одной папкой, каждая со скриптом:
/root/script01/client_script01/main.lua
В этом сценарии у меня есть это:
local function OpenWindow()
stuff
end
А также
/root/script02/client_script02/main.lua
Я хочу использовать OpenWindow()
функция во втором сценарии!
1 ответ
Вы правы, что можете позвонить 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 - путь к пакету