私が扱っている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
オプションを処理するには多くの方法があります。最も慣用的なのは、オプションへのリフト計算です。
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)