4

最初にそれを要求することなく、プロジェクト内の任意のモジュールからアクセスできる関数を Lua に持つ方法はありますか?

何かのようなもの:

module(..., package.seeall);
function globFoo()
       print('global foo called');
end

メインのように、どこか他の場所から呼び出されます

--main

globFoo();

それを必要とせずに?

4

2 に答える 2

7

モジュールは単なる Lua スクリプトです。そこでは何でもできます。moduleモジュール スクリプトを呼び出す必要さえありません。確かに、最近moduleでは一般的に有害であると考えられているため、Lua 5.2 で廃止されました。

本当に、コードを移動するだけの問題です。

function globFoo()
       print('global foo called');
end
module(..., package.seeall); --Module created after global function

そうです、モジュールにグローバルテーブルを変更させることができます。そうしないことを強くお勧めします (Lua スクリプト間に暗黙的な順序付けが作成され、どのスクリプトがどのようなものを使用しているかを知るのが難しくなるため)。しかし、あなたはそれを行うことができます。

于 2012-08-10T18:28:21.387 に答える