A menudo me encuentro con un Option[T]
para algún tipo T
y deseo probar el valor de la opción con algún valor. Por ejemplo:¿Una mejor manera de probar el valor de una Opción?
val opt = Some("oxbow")
if (opt.isDefined && opt.get == "lakes")
//do something
El siguiente código es equivalente y elimina el requisito de probar la existencia del valor de la opción
if (opt.map(_ == "lakes").getOrElse(false))
//do something
Sin embargo, esto parece menos legible para mí. Otras posibilidades son:
if (opt.filter(_ == "lakes").isDefined)
if (opt.find(_ == "lakes").isDefined) //uses implicit conversion to Iterable
Pero no creo que éstos expresan claramente la intención sea la que sería mejor como:
if (opt.isDefinedAnd(_ == "lakes"))
Alguien tiene una mejor forma de hacer esta prueba?
Duh! A veces puedo ser extremadamente estúpido –
Bueno, me pasa todo el tiempo ;-) –
A veces la solución más simple es la mejor :) –