13

Juliaプログラムでエントリポイントを宣言する準備が整った、または慣用的な方法はありますか(つまり、mainCまたはif __name__ == "__main__"Pythonのコンストラクトと同等)?

これは、インタラクティブ モードでは使用されない大きな構造化コードを記述するための重要な機能のようですが、Julia でこれがどのように実現されているかについてのヒントを見つけることができませんでした。として機能する任意の関数を作成しmain、それをメイン モジュールの最後にトップ レベルで 1 回呼び出すこともできますが、それは洗練されておらず、効率的でさえない可能性があります)。ティア。

4

3 に答える 3

13

main関数を作成しても、ファイルの最上位から呼び出すことはできません。コマンドラインからプログラムを実行するには、julia -L file.jl -e 'main(some,args)'. この-Lスイッチは Julia にファイルをロードするように-e指示し、次に次の式を評価するように指示します。評価して出力するスイッチもあり-Eます (大文字は「大声で」聞こえるので、「大声で評価する」と考えています)。

mainこれには、Cや Pythonよりもいくつかの利点がありif __name__ == "__main__"ます。

  1. 単一のエントリ ポイントを持つ必要はありません。ファイルをロードした後は任意の式を評価できるため、すべてのコマンド ライン機能を 1 つの関数に詰め込む必要はありません。

  2. 作成する呼び出しは完全な Julia 構文を使用するため、多くの場合、引数の解析を回避できます。整数53を使用した-e main(53)呼び出しのようなもので、 insideは必要ありません。mainatoimain

于 2014-07-24T13:38:51.687 に答える
10

モジュールがロードされるとき、呼び出された関数があれば、__init__それが呼び出されます。それは役に立ちますか?

于 2014-07-24T20:43:15.823 に答える