我正在处理的java库,在错误时返回null
。是否有一种惯用的说法:
val x:Option[T]
if(x.isEmpty)
false
else
x.get.isFooable()
我在Scala: Boolean to Option查看了答案。那些接近我想要的,然后有更多惯用的方式:
x.isDefined && x.get.isFooable()
答案 0 :(得分:10)
x.exists(_.isFooable) // Returns false if x is None
如果您希望将true
作为None
的默认设置,请使用x.forall
答案 1 :(得分:4)
处理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
最后使用Scala Option
实用程序方法:
x exists { _.isFooable }
答案 2 :(得分:3)
x map (_.isFooable) getOrElse false
答案 3 :(得分:1)
你想要
x map (_.isFooAble()).getOrElse(false)