f# - F# 中是否有条件访问运算符(类似于 C# 中的 new ?.)?

标签 f#

现在,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/

相关文章:

f# - 点自由函数不会导致递归,但正常函数会在这里吗?

asynchronous - 具有异步操作的面向铁路的编程

f# - 以编程方式启动 Mono 进程

open-source - F# 会开源吗?

F# 不完整的结构化构造

events - 在多线程代码中使用 F# 事件和异步事件

f# - 使用 TryParse 重载解决方案

f# - 类型推断有什么好处?

f# - 如何在 F# 中获取异步任务的结果

f# - 在 F# 中对一系列相等的字符进行切片/分组