コンソール アプリケーション
この記事では、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
明示的なエントリ ポイント
必要に応じて、明示的なエントリポイントを使用できます。 通常、次の理由のいずれかによる場合です。
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# アプリケーションにエントリ ポイントを指定するには、プログラムの main
関数に EntryPoint
属性を適用します。 (let
バインドを使用して作成される) この関数は、最後にコンパイルされるファイルの最後の関数である必要があります。 最後にコンパイルされるファイルは、プロジェクト内の最後のファイル、またはコマンド ラインに渡す最後のファイルです。
エントリ ポイント関数の型は string array -> int
です。 コマンド ラインに指定された引数は、文字列の配列に入れて main
関数に渡されます。 配列の最初の要素は、最初の引数です。実行可能ファイルの名前は、他の言語のものであるため、配列には含まれません。 戻り値は、プロセスの終了コードとして使用されます。 通常、ゼロは成功を示します。ゼロ以外の値はエラーを示します。 ゼロ以外のリターン コードの特定の意味について規則はありません。リターン コードの意味は、アプリケーションによって異なります。
関連項目
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示