当您有一个Option
aOpt
并且您只对实际包含某些内容时才对做某事感兴趣时,您可以执行以下操作:
aOpt match {
case Some(a) => foo(a) // do something
case None => // do nothing
}
当然应该缩短为:
aOpt.foreach(a => foo(a))
现在说我有两个Option
saOpt
和bOpt
. 只有当这两个sOption
实际上都包含一个对象时,我才有兴趣做某事。
所以我写
(aOpt, bOpt) match {
case (Some(a), Some(b)) => foo(a, b) // Do something
case _ => // Do nothing
}
如何将其缩短为更少的行?或者我怎样才能至少在case _ =>
没有警告的情况下省略无用的行?