オプション オブジェクト内のオプション値にアクセスする良い方法はありますか? ネストされた一致ケースは、醜いツリー構造になります。
たとえば、次のようにします。
case class MyObject(value: Option[Int])
val optionObject : Option[MyObject] = Some(MyObject(Some(2))
値にアクセスするために私が知っている唯一の方法は次のとおりです。
val defaultCase = 0 //represents the value when either of the two is None
optionObject match {
case Some(o) => o.value match {
case Some(number) => number
case None => defaultCase
}
case None => defaultCase
}
そして、この構成体は 1 つの小さな Option 値にアクセスするためだけのものであるため、これは非常に醜いです。
私がやりたいことは次のようなものです:
optionObject.value.getOrElse(0)
またはSwiftでできるように:
if (val someVal = optionObject.value) {
//if the value is something you can access it via someVal here
}
これらのことをうまく処理できるScalaの何かがありますか?
ありがとう!