Есть ли какой-нибудь элегантный способ вернуть None, а не объект, основанный на строке - PullRequest
1 голос
/ 23 апреля 2020

Есть ли какой-нибудь элегантный способ вернуть None вместо объекта, если введенная строка пуста?

ниже - грубый пример того, чего я хочу достичь

private def foo(input: String): Option[Object] = {
   Some(Object(input)) //return None instead if input is empty
}

* PS : Я подразумеваю под элегантным, чтобы я не создавал / не определял другую функцию для достижения этого

Ответы [ 3 ]

4 голосов
/ 23 апреля 2020

Scala 2.13.x предлагает метод Option.when().

def foo(input: String): Option[Object] =
  Option.when(input.nonEmpty)(Object(input))
1 голос
/ 23 апреля 2020

Для полноты после ответа @jwvh Option.unless использует отрицательный предикат, объявленный в Option.when,

private def foo(input: String): Option[Object] = {
   Option.unless(input.isEmpty)(Object(input))
}
1 голос
/ 23 апреля 2020
def foo(input: String): Option[Object] =
  if(input.nonEmpty)
    Some(Object(input))
  else
    None

Он будет мгновенно проанализирован любым, кто читает ваш код, так что на самом деле он не становится лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...