我读了这篇MSDN文章:
...单位类型是指示缺少特定值的类型;单元类型只有一个值,当不存在其他值或不需要其他值时,它将用作占位符...单元类型类似于C#和C ++等语言中的void类型。
所以...好吧,我知道,单位类型就是这样的类型,它只有一个值()
。但是我有一些问题:
我不明白为什么不像在C#和C ++中那样在F#中使用void类型。
如果我看下表:
Type .NET Type Description
void Void Indicates no type or value.
我看到F#确实有一个void类型。所以我不明白为什么需要单位类型;看起来与void非常相似。
我想它与功能语言范例有关,这就是为什么需要它的原因,所以请...向我详细说明。
在C#中,没有void
可以用作参数类型的type值。此外,void
不能用作泛型类型参数(例如,C#需要使用并行Func<...>
和Action<...>
委托类型,但是F#仅需要... -> ...
可以对这两者进行抽象的单个函数类型)。在许多情况下,这最终大大简化了F#编程。例如,Async
执行一些副作用但不返回值的动作是type的实例Async<unit>
,但是在C#中无法创建对应的内容Task<void>
或其他内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句