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