需要文件Lua

时间:2017-07-22 15:49:29

标签: lua

如何从同一目录中的另一个文件运行一个函数?

示例:

文件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

1 个答案:

答案 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_PATHpackage.path中找到它。