【发布时间】:2016-01-23 10:09:05
【问题描述】:
我有一个形状像这样的类型:
val myType: Future[Either[MyError, TypeA]] = // some value
我知道我可以对此进行模式匹配并获得 Right 或 Left 类型,但问题是我必须嵌套我的模式匹配逻辑。我正在寻找更优雅的处理方式?有什么建议吗?
【问题讨论】:
-
听起来你需要monad转换器,不幸的是scala核心不提供。 scalaz 中的可比类型是
EitherT[Task, MyError, TypeA]。您可以通过合理的方式进行map、flatMap等操作。 -
不!使用 scalaz 不是这个项目的选项!
-
不能添加依赖?我想你可以推出自己的
EitherT? -
我最终做到了!我自己想出了一个 EitherFut 实现!