單位類型 (F#)
unit 型別表示缺少特定值;unit 型別只有單一值,做為沒有或不需要其他值時的預留位置。
// The value of the unit type.
()
備註
每個 F# 運算式都必須評估為值。 對於不會產生值得關注之值的運算式,會使用 unit 型別的值。 unit 型別類似 C# 和 C++ 等語言中的 void 型別。
unit 型別只有一個值,以語彙基元 () 表示該值。
在 F# 程式設計中,unit 型別通常做為語言語法需要值但實際上不需要值時的預留位置。 一個例子是 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# 不是純函式程式設計語言,最佳做法是盡可能遵循函式程式設計風格。