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 元组类型,用作说此函数接受或返回没有有意义的值的方式。