2017-07-22 50 views
1

如何从同一个目录中的其他文件运行一个函数?需要文件Lua

实施例:

file1的:

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

[SO Docs](https://stackoverflow.com/documentation/lua/1148/writing-and-using-modules#t=201707221630027879236) –

回答

1

file1的定义了一个名为sleep一个全球功能。所以你必须拨打电话sleep(5)file2

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

如果你想文件1到库中,这样做:

文件1

local M={} 

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

return M 

和在文件2

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

如果您想要require而不是dofile,这样做:

local barboszalib=require('barboszalib') 

但要确保的Lua可以LUA_PATHpackage.path找到它。