在 F# 的口头禅中,似乎本能地避免了null
,Nullable<T>
及其同类。作为交换,我们应该改用选项类型。老实说,我真的看不出有什么区别。
我对 F# 选项类型的理解是,它允许您指定一个可以包含其任何正常值的类型,或者
None
. 例如,除了 之外,an 还Option<int>
允许 an 可以具有的所有值。int
None
我对 C# 可空类型的理解是,它允许您指定一个可以包含其任何正常值的类型,或者
null
. 例如,除了. 之外,Nullable<int>
aka还int?
允许 an 可以具有的所有值。int
null
有什么不同?Nullable
用and Option
, null
and做一些词汇替换None
,你基本上有同样的事情。有什么大惊小怪的null
?