【发布时间】:2014-01-09 09:19:54
【问题描述】:
我阅读了这篇 MSDN 文章:
...单位类型是一种类型,表示没有特定的 价值;单位类型只有一个值,它充当 不存在或不需要其他值时的占位符... 单元类型类似于 C# 和 C++ 等语言中的 void 类型...
所以...好吧,我明白了,单元类型就是这样一种类型,它只有一个值()。但我有一些问题:
- 为什么需要它?
- 什么时候需要?
我不明白为什么不在 F# 中使用 void 类型,就像 C# 和 C++ 使用一样。
如果我看下表:
Type .NET Type Description
void Void Indicates no type or value.
我看到 F# 确实有一个 void 类型。所以我不明白为什么需要单位类型;看起来和void很像。
我想它与函数式语言范式有关,这就是为什么需要它,所以请...向我解释一下。
【问题讨论】:
-
我已经阅读了您对其他问题的回答,这很好:) 但我有一个新问题。如果我使用下一个代码:
let b () = System.DateTime.Now;;System.Console.WriteLine(b);;,为什么它会在控制台输出中返回Program+clo@16,它是什么? -
因为 b 绑定到一个函数。你可以用 b() 调用它
-
应该是
System.Console.Writeline(b());;
标签: f# functional-programming void lambda unit-type