0 元組有什麼好處

2 元組或 3 元組表示一組相關項。 (2D 空間中的點,顏色的 RGB 值等)1 元組不是很有用,因為它可以很容易地用單個 int 替換。

0 元組似乎更無用,因為它絕對沒有任何東西。然而,它具有使其在 F#等函式式語言中非常有用的屬性。例如,0 元組型別只有一個值,通常表示為 ()。所有 0 元組都有此值,因此它基本上是單例型別。在大多數函數語言程式設計語言中,包括 F#,這稱為 unit 型別。

在 C#中返回 void 的函式將返回 F#中的 unit 型別:

let printResult = printfn "Hello"

在 F#互動式直譯器中執行它,你會看到:

val printResult : unit = ()

這意味著值 printResult 的型別為 unit,其值為 ()(空元組,unit 型別的唯一值)。

函式也可以將 unit 型別作為引數。在 F#中,函式看起來可能沒有引數。但事實上,他們正在採用 unit 型別的單一引數。這個功能:

let doMath() = 2 + 4

實際上相當於:

let doMath () = 2 + 4

也就是說,一個函式接受 unit 型別的一個引數並返回 int 值 6.如果你看一下定義這個函式時 F#互動式直譯器列印的型別簽名,你會看到:

val doMath : unit -> int

事實上所有函式將至少採用一個引數並返回一個值,即使該值有時是像 () 這樣的無用值,也意味著 F#中的函式組合比沒有 tihuan 的語言更容易 15 型別。但這是一個更高階的主題,我們將在稍後介紹。現在,請記住,當你在函式簽名中看到 unit,或者在函式的引數中看到 () 時,那就是 0 元組型別,用作說此函式接受或返回沒有有意義的值的方式。