Scala тот же откат для основного if и и отказа в вызове Try () внутри блока true - PullRequest
1 голос
/ 17 июня 2020

Ищете элегантный способ получить один doSomething() запасной вариант в случае, подобном:

if(boolean) {
    Try(canFailingMethod()) match {
        case Success() => _
        case Failure() => doSomething()
  }
} else {
     doSomething()
}

Ответы [ 2 ]

2 голосов
/ 17 июня 2020

Если вас не интересует сбой, это может сработать:

Try {
  require(boolean)
  something()
}.getOrElse(doSomething())
2 голосов
/ 17 июня 2020

Как насчет такого:

def attemptWithFallback(flag: Boolean)(work: => Unit)(fallback: => Unit): Unit = {
  Try(()).filter(_ => flag).flatMap(_ => Try(work)).getOrElse(fallback)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...