import scalaz._
import Scalaz._
"abc".parseInt
这将返回一个
Validation[NumberFormatException, Int]
。有什么方法可以在故障端应用函数(例如
toString
)来获取Validation[String, Int]
吗?
最佳答案
在<-:
上定义了一对方法:->
和MAB[M[_,_], A, B]
,只要有M[A, B]
,它们就会映射到任何Bifunctor[M]
的左侧和右侧。 Validation
恰好是一个bifunctor,因此您可以执行以下操作:
((_:NumberFormatException).toString) <-: "123".parseInt
Scala的类型推断通常从左到右流动,因此实际上更短:
"123".parseInt.<-:(_.toString)
并且需要更少的注释。
关于scala - 映射Scalaz验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7516613/