2016-04-08 6 views
1

I've got this UTF-8 module for Luaなぜこのモジュールは登録された機能の一部しか利用できませんか?

require()の場合、最初の2つの機能(charbytesおよびlen)のみが使用可能です。残りは定義されているにもかかわらず、利用できません。

私は非常に簡単なスクリプトでこれをテストした:それは返す utf8 = require("utf8") print(utf8.len, utf8.sub)

function: 0xsomeaddress nilを。何故ですか?

+0

私にとってうまく動作します。モジュールコードが正常に見えます。 – Piglet

+0

@ピグル私はLua 5.3の出荷と 'utf8'モジュールだけで問題を特定しました。基本的に' custom( "utf8") 'がカスタムモジュールの代わりにモジュールを再ロードします。 – Zatherz

+0

my_utf8.luaのようにファイルの名前を変更するだけです。 – tonypdmtr

答えて

3

ルア5.3にはutf8モジュールがあり、既にロードされています。したがって、require("utf8")はモジュールで実際に何もしません。

+2

"優先度は高くない"が "既に読み込まれています"。内蔵モジュールを「アンロード」(または決して最初にロードしない)にすると、外部モジュールが機能します。 –

+0

では、モジュールを複数回ロードする必要がありません。そのため、組み込みモジュールを実際にリロードしません。 utf8が既にロードされているので、あなたのモジュールのロードを単に拒否します。詳細は、LuaリファレンスのModulesセクションを参照してください。 – Piglet

+0

ありがとう、私はそれを編集しました – Zatherz