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