unit 类型

unit类型是一种类型,该类型指示缺少特定值; unit 类型仅具有单个值,当不存在任何其他值或需要时,此值充当占位符。

语法

// The value of the unit type.
()

备注

每个 F # 表达式的计算结果必须为一个值。 对于不生成相关值的表达式,使用类型的值 unitunit类型类似于 void c # 和 c + + 语言中的类型。

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 # 不是纯粹的函数编程语言,但最好尽可能遵循函数编程样式。

另请参阅