この記事では、F# コンソール アプリケーションを構築する方法について説明します。
暗黙的なエントリ ポイント
既定では、F# アプリケーションでは暗黙的なエントリ ポイントが使用されます。 たとえば、次のプログラムでは、エントリ ポイントは暗黙的であり、プログラムを実行すると、コードは最初の行から最後の行まで実行されます。
open System
let printSomeText() =
let text = "Hello" + "World"
printfn $"text = {text}"
let showCommandLineArgs() =
for arg in Environment.GetCommandLineArgs() do
printfn $"arg = {arg}"
printSomeText()
showCommandLineArgs()
exit 100
明示的なエントリ ポイント
必要に応じて、明示的なエントリ ポイントを使用できます。 これは通常、次の 1 つまたはすべての理由で行われます。
System.Environment.GetCommandLineArgs()を使用するのではなく、関数に渡された引数を使用してコマンド ライン引数にアクセスする方が好きです。exitを使用するのではなく、戻り値の結果を使用してエラー コードを返す必要があります。コンソール アプリケーションの最後のファイルのコードを単体テストする必要があります。
次の例は、明示的なエントリ ポイントを持つ単純な main 関数を示しています。
[<EntryPoint>]
let main args =
printfn "Arguments passed to function : %A" args
// Return 0. This indicates success.
0
コマンド ライン EntryPoint.exe 1 2 3でこのコードを実行すると、出力は次のようになります。
Arguments passed to function : [|"1"; "2"; "3"|]
構文
[<EntryPoint>]
let-function-binding
注釈
前の構文では、 let-function-binding は、 let バインド内の関数の定義です。
実行可能ファイルとしてコンパイルされるプログラムへのエントリ ポイントは、実行が正式に開始される場所です。 F# アプリケーションへのエントリ ポイントを指定するには、 EntryPoint 属性をプログラムの main 関数に適用します。 この関数 ( let バインドを使用して作成) は、最後にコンパイルされたファイル内の最後の関数である必要があります。 最後にコンパイルされたファイルは、プロジェクト内の最後のファイル、またはコマンド ラインに渡される最後のファイルです。
エントリ ポイント関数の型は string array -> int。 コマンド ラインで指定された引数は、文字列の配列内の main 関数に渡されます。 配列の最初の要素は最初の引数です。実行可能ファイルの名前は、他のいくつかの言語であるため、配列には含まれません。 戻り値は、プロセスの終了コードとして使用されます。 通常、ゼロは成功を示します。0 以外の値はエラーを示します。 0 以外のリターン コードの特定の意味に関する規則はありません。戻りコードの意味はアプリケーション固有です。
こちらも参照ください
.NET