單位類型

unit 型別是表示缺少特定值的型別;unit 型別只有單一值,作為沒有或不需要其他值時的預留位置。

語法

// The value of the unit type.
()

備註

每個 F# 運算式都必須得出值。 對於不會產生感興趣值的運算式,會使用 unit 型別的值。 unit 型別類似於 C# 和 C++ 等語言的 void 型別。

unit 型別具有單一值,且該值是由 () 語彙基元表示。

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# 不是純功能性程式設計語言,但最好盡可能遵循功能性程式設計樣式。

另請參閱