我有以下课程:
class MyBot[F[_] : FlatMap]
在这个类中,我有一个功能:
private def handleCallback(): F[Boolean]
据我了解,这应该有效:
handleCallback().flatMap(..)
但它抛出:cannot resolve symbol flatMap
我想念什么?
我有以下课程:
class MyBot[F[_] : FlatMap]
在这个类中,我有一个功能:
private def handleCallback(): F[Boolean]
据我了解,这应该有效:
handleCallback().flatMap(..)
但它抛出:cannot resolve symbol flatMap
我想念什么?
Mon Calamari的解决方案并没有解决我的问题,但是在查看FlatMap
建议的博客时,我发现:
import cats.implicits._
我错过了 - 并解决了我的问题 - 一切都保持不变。
您需要FlatMap[F]
调用 flatMap 的实例并使用其方法:
class MyBot[F[_]](implicit F: FlatMap[F]) {
def handleCallback: F[Boolean] = ...
def flatMapCallback: F[Boolean] = F.flatMap(handleCallback) { bool =>
...
}
}
来自 eed3si9n 的精彩博客中的更多详细信息:http: //eed3si9n.com/herding-cats/