Lua:アクセスモジュール、作成モジュール、サブモジュールとパッケージ
2067 ワード
一、ロードモジュール
1.1ロードモジュール
二、モジュールの作成
2.1 tableを作成し、エクスポートする関数を挿入し、最後にこのtableに戻ります.
2.2モジュール内の関数を定義して呼び出すには、固定されたローカル名(Mなど)を使用し、そのローカル名をモジュールの最終名に割り当てます.
2.3 requireがモジュール名をパラメータとしてモジュールに渡すため、モジュール名の書き込みは完全に回避
2.4モジュールに戻り値がない場合、requireはpackageを返す.loaded[modname]の現在値
2.5環境変数を使用して、前の環境の環境変数にアクセスする
3つの方法で、前の環境の環境変数にアクセスできます.
1.継承
2.古い環境へのアクセスを保存するローカル変数を宣言します.
3.必要な関数またはモジュールをローカル変数として宣言
2.6 module()を使用したモジュールの作成
module()は前の設定コードに取って代わります
三、サブモジュールとパッケージ
3.1サブモジュールへのアクセス
1.1ロードモジュール
#!/usr/bin/env lua
--complex = require "package.complex"
complex = require "complex"
print (complex.add(3,4))
二、モジュールの作成
2.1 tableを作成し、エクスポートする関数を挿入し、最後にこのtableに戻ります.
#!/usr/bin/env lua
local complex = {}
function complex.add(x, y)
return x + y
end
return complex
2.2モジュール内の関数を定義して呼び出すには、固定されたローカル名(Mなど)を使用し、そのローカル名をモジュールの最終名に割り当てます.
#!/usr/bin/env lua
local M = {}
complex = M
function M.add(x, y)
return x + y
end
return M
2.3 requireがモジュール名をパラメータとしてモジュールに渡すため、モジュール名の書き込みは完全に回避
#!/usr/bin/env lua
local complex = ...
local M = {}
_G[complex] = M
function M.add(x, y)
return x + y
end
return M
2.4モジュールに戻り値がない場合、requireはpackageを返す.loaded[modname]の現在値
#!/usr/bin/env lua
local complex = ...
local M = {}
_G[complex] = M
package.loaded[complex] = M
function M.add(x, y)
return x + y
end
2.5環境変数を使用して、前の環境の環境変数にアクセスする
3つの方法で、前の環境の環境変数にアクセスできます.
1.継承
2.古い環境へのアクセスを保存するローカル変数を宣言します.
3.必要な関数またはモジュールをローカル変数として宣言
#!/usr/bin/env lua
local complex = ...
local M = {}
_G[complex] = M
package.loaded[complex] = M
--setmetatable(M, {__index = _G})
--local _G = _G
local print = print
setfenv(1, M)
function add(x, y)
--print "aa"
--_G.print "aa"
print "aa"
return x + y
end
2.6 module()を使用したモジュールの作成
module()は前の設定コードに取って代わります
local complex = ...
local M = {}
_G[complex] = M
package.loaded[complex] = M
--setmetatable(M, {__index = _G})
setfenv(1, M)
#!/usr/bin/env lua
module(...)
--module(..., package.seeall) -- setmetatable(M, {--index = _G})
function add(x, y)
--print "aa"
return x + y
end
三、サブモジュールとパッケージ
3.1サブモジュールへのアクセス
#!/usr/bin/env lua
complex = require "package.complex"
print (complex.add(3,4))