【发布时间】:2016-10-27 22:36:09
【问题描述】:
如题所述,使用这样的数据结构有意义吗?让我一一解释:
- 未来 - 代表异步计算
- 或者 - 传达已知错误
- 选项 - 告知该值可能不存在
看到这个我有点害怕。使用这种类型组合是一种好习惯吗?
【问题讨论】:
-
没有什么问题,是的,你可能有一些更复杂的类型,但它确实代表了你的业务逻辑(我也有类似的东西),如果你对如何更好地感兴趣的话处理这个看看
Disjunction(而不是Either)和来自scalaz的EitherT,了解如何将其转换为单个monad,只需处理Option。 -
我在工作中写了一个 web 服务,通常使用这种类型。也许你会觉得这个discussion 很有趣。特别是,我问如何更好地“排序”
Future[Either[A, B]]。 @tpolecat 和其他人建议使用 Monad Transformers,以及一个有用的要点示例。
标签: scala functional-programming