Python ソース ファイルには、パターンを使用してモジュールとしてもスタンドアロン プログラム (ツール) としても機能するという優れた特性があります。
if __name__ == "__main__":
Dモジュールのソースファイルで同じ動作をすることは何とか可能ですか?
Python ソース ファイルには、パターンを使用してモジュールとしてもスタンドアロン プログラム (ツール) としても機能するという優れた特性があります。
if __name__ == "__main__":
Dモジュールのソースファイルで同じ動作をすることは何とか可能ですか?
それはあなたがしようとしていることに依存します。AD プログラムはmain
、エントリ ポイントとしてすべてのモジュールで 1 つの関数のみを必要とするため、Python のような暗黙的な方法はありません。D の方法は、実行可能ファイルを別のモジュールとして作成し、別のモジュールをmain
インポートします。
ただし、テスト目的でのみ実行したい場合は、実行可能コードをunittest
ブロックに配置して ( なしでmain
)、 を使用してファイルを実行できます。rdmd -main -unittest scratch.d
これにより、スタブが追加さmain
れます。
二重目的のモジュール (実際には D ウェイではありません) を本当に作成したい場合はmain
、一意のversion
ブロック内に配置できます。
module scratch; // file scratch.d
import std.stdio;
void foo(){ writeln("FOO"); }
version(scratchExe) {
void main() {
foo();
}
}
次に、実行可能バージョンをコンパイルしますdmd scratch.d -version=scratchExe
。
はい、プラグマで:
void foo(){
//...
}
version(fooMain){
pragma(startaddress, foo);
}