我正在处理的 java 库返回null
错误。有没有一种惯用的说法:
val x:Option[T]
if(x.isEmpty)
false
else
x.get.isFooable()
我看过Scala: Boolean to Option的答案。这些接近我想要的,然后有更惯用的方式:
x.isDefined && x.get.isFooable()
我正在处理的 java 库返回null
错误。有没有一种惯用的说法:
val x:Option[T]
if(x.isEmpty)
false
else
x.get.isFooable()
我看过Scala: Boolean to Option的答案。这些接近我想要的,然后有更惯用的方式:
x.isDefined && x.get.isFooable()
x.exists(_.isFooable) // Returns false if x is None
如果您想true
作为 的默认值None
,请使用x.forall
处理选项的方法有很多。最惯用的是将计算提升到 Option:
val x = Option(true)
x map { if(_) 10 else 20 }
如果您使用 Option[Boolean] 进行条件分支,则比模式匹配更可取:
c match {
case Some(true) => println("True")
case Some(false) => println("False")
case None => println("Undefined")
}
你的情况:
x.isDefined && x.get.isFooable()
有点清楚:
x map { _.isFooable } getOrElse false
最后使用 ScalaOption
实用方法:
x exists { _.isFooable }
x map (_.isFooable) getOrElse false
你要
x map (_.isFooAble()).getOrElse(false)