一次导入多个lua文件?

时间:2016-05-12 03:19:34

标签: lua

如何在另一个lua文件中导入多个lua文件并使用它们。我正在使用

dofile("/some/paht/file.lua")

为每个文件。一次导入多个lua文件的最佳方法是什么?如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:1)

您可以使用require加载模块。使用dofile有效,但require会缓存已加载的模块,您可以通过package.path控制在哪里查找模块。

您只需为每个模块调用require即可加载多个模块。

require 'file1'  --> load ./file1.lua
require 'file2'  --> load ./file2.lua

如果您需要从不在默认路径中的某个地方加载模块,您可以在调用require之前更新package.path

package.path = '/some/path/?.lua;'..package.path

如果您的模块具有返回值(例如函数表),这对于Lua模块是常见的,那么将变量设置为require的返回值。

local file1 = require 'file1'  --> load file1.lua
local file2 = require 'file2'    

如果你想一次加载多个文件;创建一个函数,该函数获取模块名称表,需要每个模块名称,然后将它们全部返回。

local function import(t)
    for i, v in ipairs(t) do
        t[i] = require(v)
    end
    return table.unpack(t)
end

local file1, file2 = import{'file1', 'file2'}