如何从同一目录中的另一个文件运行一个函数?
示例:
文件1:
function sleep(n)
local t = os.clock()
while os.clock() - t <= n do
-- nothing
end
end
file2的:
dofile('/barboszalib.lua')
function DoSomething(target)
print(target + 3)
end
while true do
DoSomething(4)
barboszalib.sleep(5)
end
答案 0 :(得分:1)
file1 定义名为sleep
的全局函数。因此,您必须在 file2 中调用sleep(5)
。
barboszalib.sleep(5)
失败,因为没有名为barboszalib
的表。
如果要将 file1 添加到库中,请执行以下操作:
文件1 :
local M={}
function M.sleep(n)
local t = os.clock()
while os.clock() - t <= n do
-- nothing
end
end
return M
和in file2 执行
local barboszalib=dofile('/barboszalib.lua')
...
barboszalib.sleep(5)
如果您想要require
而不是dofile
,请执行以下操作:
local barboszalib=require('barboszalib')
但请确保Lua可以在LUA_PATH
或package.path
中找到它。