2016-05-12 5 views
2

複数のluaファイルを別のluaファイルにインポートして使用するにはどうすればいいですか?私は、それぞれ、すべてのファイルに対して一度に複数のluaファイルをインポートしますか?

dofile("/some/paht/file.lua")

を使用しています。一度に複数のluaファイルをインポートする最良の方法は何ですか?私が間違っていれば私を訂正してください。

+2

https://www.lua.org/pil/15.htmlを行うことができます –

+0

私はその記事を読んだが、すべてのモジュールが個別のファイルを一度に定義できるようになった。私は5つの.luaファイルを持っており、それぞれ独自のパッケージを定義しています。今は6つ目の.luaファイルで5つのパッケージを使いたいのですがどうすればいいですか? –

+0

6番目のファイルにもう1つの5が必要な問題は何ですか? –

答えて

1

requireを使用してモジュールをロードできます。 dofileを使用すると、requireがロードされたモジュールをキャッシュし、package.path経由でモジュールを探す場所を制御できます。

複数のモジュールをロードするには、それぞれにrequireを呼び出します。

require 'file1' --> load ./file1.lua 
require 'file2' --> load ./file2.lua 

あなたが必要呼び出す前package.pathを更新することができ、デフォルトのパスではないどこかからモジュールをロードする必要がある場合:あなたのモジュールは、戻り値(元関数のテーブルを持っている場合は

package.path = '/some/path/?.lua;'..package.path 

)、これはLuaモジュールに共通なので、戻り値をrequireに設定します。

local file1 = require 'file1' --> load file1.lua 
local file2 = require 'file2'  

複数のファイルを一度にロードする場合は、モジュール名の表を取り、それぞれが必要であり、すべてを返す関数を作成します。

local function import(t) 
    for i, v in ipairs(t) do 
     t[i] = require(v) 
    end 
    return table.unpack(t) 
end 

local file1, file2 = import{'file1', 'file2'} 
1

あなたは

luac -o bundle.luac file1.lua file2.lua file3.lua 

で単一のものにすべてのファイルをプリコンパイルして、単一

dofile"bundle.luac" 
関連する問題