【发布时间】:2018-07-22 16:57:52
【问题描述】:
我有以下代码:
override def getStandsByUser(email: String): Try[Seq[Stand]] =
(for {
user <- OptionT(userService.findOneByEmail(email)): Try[Option[User]]
stands <- OptionT.liftF(standService.list()):[Try[List[Stand]]]
filtered = stands.filter(stand => user.stands.contains(stand.id))
} yield filtered).getOrElse(Seq())
}
我想在处理的每个阶段添加日志记录 - 所以我需要引入 writer monad 并将其与 monad 转换器 OptionT 堆叠在一起。您能否建议如何做到这一点?
【问题讨论】:
标签: scala monad-transformers scala-cats writer-monad