重複の可能性:
グローバル Lua 関数をローカルにするのはなぜですか?
コミュニティの多くの lua スクリプトで、モジュールをスクリプトに追加するようなものを見てきました。
local module = require("module")
しかしlua-manualによると、これはモジュールをロードする方法ではありません。モジュール自体にはモジュール名が含まれているため、
require("module")
module.myfunction() のようにモジュールを使用するだけで十分です。local-definition を使用した最初の例では、「true」を module-var に書き込むだけで、モジュールが正常にロードされたことを示しています。
奇妙なことは、この種の「local module = require("module")」のロードが Web のいたるところで見られることです。このエラーが原因で、lua-community のほとんどのスクリプトが機能しません。また、Web 上でこれに関する問題がまだ見つからないのはなぜだろうか。
次に、実際にモジュールをロードすると、奇妙なエラーが発生することがあります。例:私はスクリプトを持っています
require("purexml.lua")
このエラーが発生したよりも:
no field package.preload['purexml.lua']
no file './purexml/lua.lua'
no file '/usr/local/share/lua/5.1/purexml/lua.lua'
no file '/usr/local/share/lua/5.1/purexml/lua/init.lua'
no file '/usr/local/lib/lua/5.1/purexml/lua.lua'
no file '/usr/local/lib/lua/5.1/purexml/lua/init.lua'
no file './purexml/lua.so'
no file '/usr/local/lib/lua/5.1/purexml/lua.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './purexml.so'
no file '/usr/local/lib/lua/5.1/purexml.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
しかし、これを行うとうまくいきます:
require("purexml")
ここで本当に明らかな何かが欠けていますか?ちなみにLua 5.1.4を使用しています...