【发布时间】:2018-11-22 12:19:59
【问题描述】:
问题:我有以下Future[Option[T]] monad,我想对它应用scalaz Monad Transformer OptionT。因为我只对可选结果感兴趣。
问题:是否有可能从 Future[Option[T]] 生成 Option[Future[T]] 并保留语义?
【问题讨论】:
-
请注意,您的问题与this one 非常相似,只是方向相反。
问题:我有以下Future[Option[T]] monad,我想对它应用scalaz Monad Transformer OptionT。因为我只对可选结果感兴趣。
问题:是否有可能从 Future[Option[T]] 生成 Option[Future[T]] 并保留语义?
【问题讨论】:
使用.sequence:
scala> import scalaz._, Scalaz._, ...
scala> val a: Future[Option[Int]] = Future(None)
a: Future[Option[Int]] = Future(Success(None))
scala> val b = a.sequence
b: Option[Future[Int]] = None
【讨论】:
Future[Option[T]] 获取OptionT?