我一直在寻找,但找不到隐式转换器。显然写一个是微不足道的,但我想知道我是否以某种方式在 scalaz 库中错过了一个!
问问题
1851 次
2 回答
12
Scalaz 有一个 to 的隐式转换Option
,OptionW
它声明了toFailure
andtoSuccess
方法。
于 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 回答