unit型は、特定の値がないことを示す型です。unit型には 1 つの値しか含まれず、他の値が存在しない場合や必要なときにプレースホルダーとして機能します。
構文
// The value of the unit type.
()
注釈
すべての F# 式は値に評価される必要があります。 目的の値を生成しない式の場合は、 unit 型の値が使用されます。
unit型は、C# や C++ などの言語のvoid型に似ています。
unit型には 1 つの値があり、その値はトークン ()によって示されます。
unit型の値は、多くの場合、F# プログラミングで、言語構文で値が必要な場所を保持するために使用されますが、値が必要ない場合や必要な場合に使用されます。 たとえば、 printf 関数の戻り値です。
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
この警告は関数型プログラミングの特性です。他の .NET プログラミング言語では表示されません。 関数に副作用がない純粋関数型プログラムでは、関数呼び出しの結果は最終的な戻り値だけです。 したがって、結果が無視されると、プログラミング エラーが発生する可能性があります。 F# は純粋に関数型プログラミング言語ではありませんが、可能な限り関数型プログラミング スタイルに従うことをお勧めします。
こちらも参照ください
.NET