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