次の方法で共有


ユニットの種類

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# は純粋に関数型プログラミング言語ではありませんが、可能な限り関数型プログラミング スタイルに従うことをお勧めします。

こちらも参照ください