设为首页 加入收藏

TOP

Scalaz(19)- Monad: \/ - Monad 版本的 Either(二)
2017-10-10 12:13:27 】 浏览:4427
Tags:Scalaz Monad 版本 Either
(B \
/ A) = \/-(self) } trait ToEitherOps { //可以为任何类型A注入方法 implicit def ToEitherOps[A](a: A) = new EitherOps(a) }

现在这个for-comprehension可以这样写:

 1 val epok1 = for {  2     a <- 3.right  3     b <- 2.right  4 } yield a + b                                     //> epok1 : scalaz.\/[Nothing,Int] = \/-(5)
 5 val epno1 = for {  6     a <- 3.right  7     c <- "breaking out...".left[Int]  8     b <- 2.right  9 } yield a + b                                     //> epno1 : scalaz.\/[String,Int] = -\/(breaking out...)
10 if (epno1.isLeft) (~epno1).getOrElse("no error")  //> res6: Any = breaking out...

这样表述是不是清晰直白多了。

 

 

 

 

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Scalaz(18)- Monad: ReaderWr.. 下一篇Scalaz(20)-Monad: Validatio..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目