使用Validation将错误串接
2015-08-20 16:21
387 查看
源码:
Validation有两个case class Success和case class Failure
介于Validation,scalaZ提供ValidationOps,其提供了如下几个非常有用的方法
success[X],
successNel[X],
failure[X],
failureNel[X]
简单使用
使用|@|将出错的结果粘起来
sealed trait Validation[+E, +A] { /** Return `true` if this validation is success. */ def isSuccess: Boolean = this match { case Success(_) => true case Failure(_) => false } /** Return `true` if this validation is failure. */ def isFailure: Boolean = !isSuccess ... } final case class Success[E, A](a: A) extends Validation[E, A] final case class Failure[E, A](e: E) extends Validation[E, A]
Validation有两个case class Success和case class Failure
介于Validation,scalaZ提供ValidationOps,其提供了如下几个非常有用的方法
success[X],
successNel[X],
failure[X],
failureNel[X]
简单使用
scala> "ok".success[String] res11: scalaz.Validation[String,String] = Success(ok)
使用|@|将出错的结果粘起来
scala> ("event 1 ok".success[String] |@| "event 2 failed!".failure[String] |@| " event 3 failed!".failure[String]) {_ + _ + _} res15: scalaz.Unapply[scalaz.Apply,scalaz.Validation[String,String]]{type M[X] = scalaz.Validation[String,X]; type A = String}#M[String] =<span style="color:#ff0000;"> Failure(event 2 faile d!event 3 failed!)</span>
相关文章推荐
- TrackMouseEvent与_TrackMouseEvent
- hdu 4857 逃生(拓扑排序)
- 今15年创业,享受改变的过程(我的新书10月中旬上市)
- NuGet的使用和服务搭建
- 0-1背包问题
- 实现Android播放声音资源的一个简单的工具类
- 利用开源组件iText动态生成PDF文档
- CWnd与HWND的区别与转换
- php cms 通用后台下载
- DDX_Control和DDX_Text的区别
- 我爸爸是个程序员
- DOM(一)-07-(window常见方法_1)
- 关于数据库事务、隔离级别、锁的理解与整理
- OpenWRT(RT5350) 路由客户模式(Routed Client) ,设置防火墙开放UDP指定端口
- c语言实现约瑟夫环-每隔几个删除一个,求剩下的
- 数据挖掘之关联分析六(子图模式)
- Windows Sockets 网络编程——第十章 支持例程
- OC基础 -- 集合 和 常见对象
- 《Spring in Action 4》阅读札记
- 如何在Linux上用Squid搭建代理服务器