如何从LUA中的其他脚本调用函数?

时间:2019-01-07 16:48:16

标签: function lua multifile

我有一个名为“ root”的根文件夹。 在此文件夹中,我还有2个目录,每个目录都有一个文件夹,每个目录都有一个脚本:

/root/script01/client_script01/main.lua

在此脚本中,我有这个:

local function OpenWindow()
    stuff
end

/root/script02/client_script02/main.lua

我想在第二个脚本中使用OpenWindow()函数!

1 个答案:

答案 0 :(得分:0)

如果在定义中未使用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

来调整文件结构,使其更适合此约定。