10

我一直在寻找,但找不到隐式转换器。显然写一个是微不足道的,但我想知道我是否以某种方式在 scalaz 库中错过了一个!

4

2 回答 2

12

Scalaz 有一个 to 的隐式转换OptionOptionW它声明了toFailureandtoSuccess方法。

于 2012-01-19T17:09:01.740 回答
0

基本上,您有将“一些”转换为“快乐路径”的方法(在验证的情况下 -> 成功,在分离的情况下 \/-),然后您需要为 None 定义错误描述。

我在收到可选参数时使用它,如果未提供,我想引发错误。

例子:

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
于 2019-05-12T12:57:04.740 回答