我的 Tagless Final 中 Cats FlatMap 的问题 class
Problem with Cats FlatMap in my Tagless Final class
我有以下 class:
class MyBot[F[_] : FlatMap]
在这个class中我有一个函数:
private def handleCallback(): F[Boolean]
据我所知,这应该可行:
handleCallback().flatMap(..)
但它抛出:cannot resolve symbol flatMap
我错过了什么?
你需要召唤一个 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/
Mon Calamari 的解决方案没有解决我的问题,但是在查看建议的博客 FlatMap
时,我发现:
import cats.implicits._
我错过了 - 并解决了我的问题 - 一切都保持不变。
我有以下 class:
class MyBot[F[_] : FlatMap]
在这个class中我有一个函数:
private def handleCallback(): F[Boolean]
据我所知,这应该可行:
handleCallback().flatMap(..)
但它抛出:cannot resolve symbol flatMap
我错过了什么?
你需要召唤一个 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/
Mon Calamari 的解决方案没有解决我的问题,但是在查看建议的博客 FlatMap
时,我发现:
import cats.implicits._
我错过了 - 并解决了我的问题 - 一切都保持不变。