我正在尝试使用 OptionT
来组合返回 Future[Option[T]]
的方法以进行理解。
import cats.data._
import cats.implicits._
import cats.instances.future._
for {
data <- OptionT(repo.getData(id))
...
}
我收到的编译器错误:
could not find implicit value for parameter F cats.Functor[scala.concurrent.Future]
这个recent example表明这是(曾经?)可能的。
pull request for adding OptionT
中的文档也是如此
我在这里缺少什么?
谢谢
最佳答案
通过导入 cats.implicits._
您实际上已经导入了 cats.syntax.AllSyntax
和 cats.instances.AllInstances
尝试仅使用这些导入:
import cats.data._
import cats.implicits._
或者(根据您的需要):
import cats.data._
import cats.instances.future._
或更具体地说:
import cats.data._
import cats.instances.future.catsStdInstancesForFuture
您可能还需要:
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
注意:当然,您必须在生产环境中隐式提供实际的ExecutionContext
。
关于scala - 缺少 Cats Functor[Future] 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43388495/