unit 型 (F#)

unit 型は、特定の値を持たないことを示す型です。unit 型には値が 1 つだけあり、他の値が存在しない場合や不要な場合のプレースホルダーとして機能します。

// The value of the unit type.
()

解説

すべての F# の式は、評価して値にする必要があります。式で目的の値が生成されない場合は、unit 型の値が使用されます。unit 型は、C#、C++ などの言語の void 型に似ています。

unit 型には値が 1 つあり、その値は () トークンで示されます。

unit 型の値は、値が不要であっても、言語の構文で値が必要とされる場所を保持するために F# プログラミングでよく使用されます。printf 関数の戻り値は、その 1 つの例と言えます。printf 操作の重要なアクションは関数で発生するため、関数が実際の値を返す必要はありません。したがって、戻り値は unit 型です。

一部の構成要素は、unit 値を想定しています。たとえば、do 束縛またはモジュールの最上位のコードは、評価されて unit 値になると予測されます。コンパイラは、モジュールの最上位の do 束縛またはコードで、使用されていない unit 値以外の結果が生成されると、警告を報告します。次に例を示します。

let function1 x y = x + y
// The next line results in a compiler warning.
function1 10 20 
// Changing the code to one of the following eliminates the warning.
// Use this when you do want the return value.
let result = function1 10 20
// Use this if you are only calling the function for its side effects,
// and do not want the return value.
function1 10 20 |> ignore

この警告は、関数型プログラミングの特長の 1 つであり、他の .NET プログラミング言語では表示されません。関数が副作用を伴わない純粋な関数型プログラムの場合の最後の戻り値は、関数呼び出しの結果だけです。したがって、結果が無視される場合は、プログラミング エラーの可能性があります。F# は純粋な関数型プログラミング言語ではありませんが、できる限り、関数型プログラミング スタイルに従うことをお勧めします。

参照

関連項目

プリミティブ型 (F#)

その他の技術情報

F# 言語リファレンス