如果两个选项中的一个不为空,我想计算一些东西。显然这可以通过模式匹配来完成,但有没有更好的方法?
(o1, o2) match {
case (Some(o), None) => Some(compute(o))
case (None, Some(o)) => Some(compute(o))
case _ => None
}
最佳答案
你可以这样做:
if (o1.isEmpty ^ o2.isEmpty)
List(o1,o2).flatMap(_.map(x=>Some(compute(x)))).head
else
None
但是模式匹配可能是更好的方法。
关于scala - 当只有一个选项不为空时做某事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43299907/