変数がobj: Option[MyObject]
あり、そこから複数の変数を抽出したい - オブジェクトが設定されていない場合は、デフォルト値を使用する必要があります。
現在、私は次のようにしています:
val var1 = obj match {
case Some(o) => e.var1
case _ => "default1"
}
val var2 = obj match {
case Some(o) => e.var2
case _ => "default2"
}
...
これは非常に冗長です。私は次のようにできることを知っています:
val var1 = if (obj.isDefined) obj.get.var1 else "default1"
val var2 = if (obj.isDefined) obj.get.var2 else "default2"
これはまだ奇妙に思えます。1 つの大きな一致を使用して、値オブジェクトまたはタプルを返すことができることを知っています。
しかし、私が気に入っているのは、これに似たものです。
val var1 = obj ? _.var1 : "default1"
val var2 = obj ? _.var2 : "default2"
これはどういうわけか可能ですか?