我正在处理的java库,返回null错误.是否有一种惯用的说法:
val x:Option[T]
if(x.isEmpty)
false
else
x.get.isFooable()
Run Code Online (Sandbox Code Playgroud)
我看过Scala的答案:布尔到选项.那些接近我想要的,然后有更多惯用的方式:
x.isDefined && x.get.isFooable()
Run Code Online (Sandbox Code Playgroud)
Kri*_*ala 10
x.exists(_.isFooable) // Returns false if x is None
Run Code Online (Sandbox Code Playgroud)
如果您想要true作为默认值None,请使用x.forall
处理选项的方法有很多种。最惯用的是对 Option 的提升计算:
val x = Option(true)
x map { if(_) 10 else 20 }
Run Code Online (Sandbox Code Playgroud)
如果您使用 Option[Boolean] 进行条件分支,则最可取的是模式匹配:
c match {
case Some(true) => println("True")
case Some(false) => println("False")
case None => println("Undefined")
}
Run Code Online (Sandbox Code Playgroud)
而你的情况:
x.isDefined && x.get.isFooable()
Run Code Online (Sandbox Code Playgroud)
一点点清楚:
x map { _.isFooable } getOrElse false
Run Code Online (Sandbox Code Playgroud)
最后使用 ScalaOption实用程序方法:
x exists { _.isFooable }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2258 次 |
| 最近记录: |