Скажем, у меня есть функция, которая может принимать необязательный параметр, и я хочу вернуть Some
если аргумент None
и a None
если аргумент Some
:
def foo(a: Option[A]): Option[B] = a match {
case Some(_) => None
case None => Some(makeB())
}
Поэтому я хочу сделать вид инверсии map
. Варианты orElse
неприменимы, поскольку они сохраняют значение a
если оно присутствует.
Есть ли более краткий способ сделать это, чем if (a.isDefined) None else Some(makeB())
?