scala - 映射Scalaz验证失败

标签 scala scalaz

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/

相关文章:

scala - 在 Scala 中使用符号的实际例子?

scala - 什么取代了 scala 中的类变量?

java - Scala 效率

scala - Scalaz `F[_] : Applicative` 类型约束如何暗示使用隐式参数?

java - 如何在scala中创建csv文件时添加新列

mysql - 玩Framework Mysql连接,避免数据库未连接时异常

scala - 如何选择乘法幺半群而不是加法幺半群?

scala - 为什么我们需要 scalaz.stream 而不是 iteratee?

Scalaz 验证 NEL mkString

scala - 如何让 Scala 的类型系统捕获这个 MatchError?