¿Cómo convertir un Some ("") a None en una línea?
Quiero definir una función:
def convert(x: Option[String]): Option[String] = ...
Cuandox
esSome(str)
y elstr
está vacío después de recortar, se convertirá en Ninguno, de lo contrario, será unSome
con hilo recortado.
Entonces, el caso de prueba será:
convert(Some("")) == None
convert(Some(" ")) == None
convert(None) == None
convert(Some(" abc ")) == Some("abc")
Puedo escribirlo como:
def convert(x: Option[String]): Option[String] = x match {
case Some(str) if str.trim()!="" => Some(str.trim())
case _ => None
}
Pero espero encontrar una implementación más simple (una línea).