スクリプトtestmodule.lua
を作成していますが、このファイルが別のスクリプトからインポート/要求されているか、またはによって直接開始されているかを確認したいと思いますlua testmodule.lua
。
コマンドラインから直接起動する場合は、テストを実行したり、メイン関数を実行したりできます。それ以外の場合は、関数をエクスポートして何もしません。
Pythonには次の__name__
ステートメントがあります。
if __name__ == '__main__':
main_entry()
luaに似たようなものはありますか?
シェルutilを単一のファイルに書き込むと便利です。このファイルは直接実行して他のluaスクリプトでインポートできます。しかし、一部のスクリプトがこのファイルをインポートするとき、main関数が呼び出されるのは好きではありません。
次のチェックを使用できます。
if pcall(debug.getlocal, 4, 1) then
print("in package")
else
print("in main script")
end
4番目のレベルの1番目の変数に何かがあるかどうかをチェックします。これは、現在のモジュールの呼び出し元(必要な場合)であるか、メインスクリプトの場合は何もありません。
それは区別しないことに注意してくださいrequire
、dofile
、loadfile
または他の同様のコール。これらの呼び出しのチェックといくつかの代替方法について説明しているLuaメールリストのこの最近のスレッドをチェックすることをお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加