【发布时间】:2015-04-23 18:28:25
【问题描述】:
我正在尝试编写一些通过返回双选项而不是双精度来处理错误的函数。其中许多函数相互调用,因此将双重选项作为输入以输出其他双重选项。问题是,我不能用双精度选项来做我可以用双精度来做的事情——像使用'+'添加它们这样简单。
例如,一个函数将两个双精度数相除,并返回一个双精度选项,没有除以零错误。然后另一个函数调用第一个函数并为其添加另一个双重选项。
请告诉我是否有办法做到这一点,或者我是否完全误解了 F# 选项类型的含义。
【问题讨论】:
-
尝试添加一些代码示例,说明您要实现什么以及遇到什么错误
-
Some(1.0) + Some(1.0) 这样无辜的东西是行不通的。如果它真的不起作用,那么我就不能真正使用它,因为我有很多接受双重选项并返回双重选项的函数,它们都依赖于彼此来做一些数学运算。
-
您正在寻找的是一个选项工作流程。看看this thread。
-
...或者直接使用
Option.bind。