如何在另一个lua文件中导入多个lua文件并使用它们。我正在使用
dofile("/some/paht/file.lua")
为每个文件。一次导入多个lua文件的最佳方法是什么?如果我错了,请纠正我。
答案 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'}