Lua文件引用

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

例如:

文件1:

function sleep(n)
  local t = os.clock()
  while os.clock() - t <= n do
    -- 什么也不做
  end
end

文件2:

require('/barboszalib.lua')

function DoSomething(target)
print(target + 3)
end

while true do
DoSomething(4)
barboszalib.sleep(5)
end
点赞
用户107090
用户107090

file1 定义了一个名为 sleep全局 函数。所以你需要在 file2 中调用 sleep(5)

barboszalib.sleep(5) 失败,因为没有名为 barboszalib 的表。

如果你想将 file1 变成一个库,做如下操作:

_file1_:

local M={}

function M.sleep(n)
  local t = os.clock()
  while os.clock() - t <= n do
    -- nothing
  end
end

return M

然后在 file2 中执行:

local barboszalib=dofile('/barboszalib.lua')
...
barboszalib.sleep(5)

如果你想使用 require 而不是 dofile,则应执行以下操作:

local barboszalib=require('barboszalib')

但请确保 Lua 可以在 LUA_PATHpackage.path 中找到它。

2017-07-22 17:53:44