如果两个选项中的一个不为空,我想计算一些东西。显然这可以通过模式匹配来完成,但有没有更好的方法?
(o1, o2) match {
case (Some(o), None) => Some(compute(o))
case (None, Some(o)) => Some(compute(o))
case _ => None
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
if (o1.isEmpty ^ o2.isEmpty)
List(o1,o2).flatMap(_.map(x=>Some(compute(x)))).head
else
None
Run Code Online (Sandbox Code Playgroud)
但模式匹配可能是更好的方法。
| 归档时间: |
|
| 查看次数: |
936 次 |
| 最近记录: |