是否有将选项转换为scalaz验证的内置方法?
我一直在找,但找不到隐式转换器。显然,写一个是很简单的,但是我想知道我是否在scalaz库中遗漏了一个 Scalaz有一个是否有将选项转换为scalaz验证的内置方法?,scala,scalaz,Scala,Scalaz,我一直在找,但找不到隐式转换器。显然,写一个是很简单的,但是我想知道我是否在scalaz库中遗漏了一个 Scalaz有一个选项到的隐式转换,它声明了toFailure和toSuccess方法。基本上,您有一些方法可以将“一些”转换为“快乐路径”(在验证->成功,在分离\/-)然后您需要为None定义一个错误描述 当我收到一个可选参数,如果没有提供,我想引发一个错误时,我会使用它 例如: scala> import scalaz.Scalaz._ import scalaz.Scalaz._
选项
到的隐式转换,它声明了toFailure
和toSuccess
方法。基本上,您有一些方法可以将“一些”转换为“快乐路径”(在验证->成功,在分离\/-)然后您需要为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
你能举个例子吗?我在scalaz和scalaz上都尝试过这个方法。导入后,我仍然得到“错误:值toValidationNel不是Option的成员”OptionOps不为您转换吗?
toValidationNel
是一个在验证时可用的方法,而不是在Option上。import scalaz.syntax.std.Option.\;myOption.toSuccessNel(myError)