【发布时间】:2015-11-10 17:24:29
【问题描述】:
当我有一个Option[T] 实例时,使用map() 和flatMap() 等一元操作对T 执行任何操作都非常容易。这样我就不必检查它是否已定义或为空,并将操作链接在一起最终得到Option[R] 的结果R。
我的困难是是否有类似的优雅方式在两个Option[T] 实例上执行功能。
让我们举一个简单的例子,我有两个 val,x 和 y,类型为 Option[Int]。如果它们都被定义,或者如果只定义一个,我想获得它们中的最大值,如果没有定义,我想获得None。
如果不涉及第一个 Option 的 map() 内的大量 isDefined 检查,如何优雅地编写此代码?
【问题讨论】:
标签: scala functional-programming scala-option