现在,C# 6 is finally going to have this long-anticipated ?. operator , 在 F# 中有类似的东西吗?我不是在谈论 ? operator .
最佳答案
惯用的 F# 根本没有空值,那么它有什么用呢?在 F# 中,对缺少值进行建模的最常见方法是使用 option
.
当我需要与可能返回 null
的 .NET 代码进行互操作时,我尽快将它转换为一个选项,使用这样的函数:
let toOption (x : obj) =
match x with
| null -> None
| _ -> Some x
一旦您将您的值(value)建模为
option
,你可以用例如组合它Option.map ,并且与建议的 C# 运算符具有相同的目的(但更好,更安全)。
关于f# - F# 中是否有条件访问运算符(类似于 C# 中的 new ?.)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24077105/