【发布时间】:2015-07-10 10:24:07
【问题描述】:
考虑以下使用 ScalaZ 的 OptionT 的代码:
val answer = for {
customer <- optionT(function1(codeString))
customerId <- someOptionT(Future(Seq(function2(customer)))
alerts <- someOptionT(Future.sequence(function3(customerId))
} yield alerts
-
function1返回Future[Option[Customer]] -
function2返回String -
function3返回Seq[Future[Option[String]]]
同时这是someOptionT
def someOptionT[T](t: Future[T]): OptionT[Future, T] = optionT[Future](t.map(Some.apply))
我在for 理解的最后一行(使用alerts)得到以下异常:
could not find implicit value for parameter F: scalaz.Functor[scala.concurrent.Future]
知道为什么吗?
【问题讨论】: