Как преобразовать Some («») в None в одну строку?
Я хочу определить функцию:
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
}
Но я надеюсь найти более простую реализацию (в одну строку).