我一直在寻找,但我找不到隐含的转换器。写一篇文章显然是微不足道的,但我想知道我是否错过了某个scalaz库中的一个!
答案 0 :(得分:12)
Scalaz隐式转换为Option
到OptionW
,它声明了toFailure
和toSuccess
方法。
答案 1 :(得分:0)
基本上,您有一些方法可以将“ Some”转换为“ happy path”(对于Validation-> Success,对于Disjunction \ /-),然后需要为None定义错误描述。
当我收到一个Optional参数时,如果没有提供该参数,我会使用它。
示例:
scala> import scalaz.Scalaz._
import scalaz.Scalaz._
scala> import scalaz._
import scalaz._
scala> Some("clientId123").toSuccessNel("Client id is mandatory")
res0: scalaz.ValidationNel[String,String] = Success(clientId123)
scala> None.toSuccessNel("Client id is mandatory")
res1: scalaz.ValidationNel[String,Nothing] = Failure(NonEmpty[Client id is mandatory])
如果使用应用程序积累错误,则可以向最终用户提供全面的错误消息,例如:
Client id is mandatory, country is mandatory, etc