Como converter Alguns (“”) em Nenhum em uma linha?
Quero definir uma função:
def convert(x: Option[String]): Option[String] = ...
Quandox
éSome(str)
e astr
fica vazio após o corte, será convertido em Nenhum, caso contrário, será umSome
com barbante aparado.
Então, o caso de teste será:
convert(Some("")) == None
convert(Some(" ")) == None
convert(None) == None
convert(Some(" abc ")) == Some("abc")
Eu posso escrever como:
def convert(x: Option[String]): Option[String] = x match {
case Some(str) if str.trim()!="" => Some(str.trim())
case _ => None
}
Mas espero encontrar uma implementação mais simples (uma linha