Я хочу определить функцию:
def convert(x: Option[String]): Option[String] = ...
Когда x
равно Some(str)
и str
пусто после обрезки, оно будет преобразовано в None, в противном случае оно будетSome
с обрезанной строкой.
Итак, контрольный пример будет:
convert(Some("")) == None
convert(Some(" ")) == None
convert(None) == None
convert(Some(" abc ")) == Some("abc")
Я могу записать это как:
def convert(x: Option[String]): Option[String] = x match {
case Some(str) if str.trim()!="" => Some(str.trim())
case _ => None
}
Но я надеюсьнайти более простую реализацию (в одну строку).