unit 类型

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

另请参阅