У меня есть переменная 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"
, что все еще кажется странным. Я знаю, что мог бы использовать одно большое совпадение и вернуть объект значения или кортеж.
Но то, что я хотел бы, выглядит примерно так:
val var1 = obj ? _.var1 : "default1"
val var2 = obj ? _.var2 : "default2"
Возможно ли это как-то ?