2017-07-22 10 views
1

同じディレクトリの別のファイルから関数を実行するにはどうすればよいですか?ファイルルアが必要

例:

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

FILE1sleep名前グローバル関数を定義します。したがってsleep(5)ファイル2に電話する必要があります。

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が必要です

local barboszalib=require('barboszalib') 

をしかし、LuaはLUA_PATHpackage.pathでそれを見つけることができることを確認してください:、これを行います。