做这个的最好方式是什么:
def reduce[A](x: Option[A], y: Option[A])(f: (A, A) => A): Option[A] =
(x, y) match {
case (Some(a), Some(b)) => Some(f(a, b))
case (None, None) => None
case (_, None) => x
case (None, _) => y
}
我看了this问题,但他的情况与我的略有不同......
最佳答案
最短的大概是
(x ++ y).reduceLeftOption(f)
由于来自
Option
的隐式转换而起作用至 Iterable
恰好有一种方法可以完全满足您的需求。
关于scala - 减少Scala中的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902542/