Как вызвать функцию из другого скрипта в 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 - путь к пакету

Другие вопросы по тегам