Incluso con la prevalencia de las mónadas Box y Option, todavía tenemos que verificar valores nulos aquí y allá. ¡Lo mejor que he encontrado hasta ahora es usar el Box # !! método:¿Cómo manejo idiomáticamente los controles nulos desde Scala/Lift?
(Box !! possiblyNull).map(_.toString).openOr("")
¿Hay una manera mejor de hacer esto? He intentado utilizar el método de aplicación de la caja:
Box(possiblyNull).map(_.toString).openOr("")
Pero el compilador se quejó de una ambigua referencia a una definición sobrecargada, específicamente:
[InType,OutType](value: InType)
(pf: PartialFunction[InType,OutType])net.liftweb.common.Box[OutType]
no estoy seguro de por qué está sucediendo, pero yo estaba esperando allí sería una forma más breve y concisa de decir "Dame el valor de esta cadena, o simplemente" ". Estaba considerando usar tryo, pero me pareció un desperdicio lidiar con una excepción cuando podría evitarse.
Guau, eso es mucho más fácil ... gracias. Además, Box es el revamping de la opción de Lift Framework. En lugar de las dos subclases de Option, tiene tres: Completa, Vacía y Falla. – Collin
Eso suena como http://www.scala-lang.org/archives/downloads/distrib/files/nightly/docs/library/scala/Either.html – pedrofurla