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