2

我有以下课程:

class MyBot[F[_] : FlatMap]

在这个类中,我有一个功能:

private def handleCallback(): F[Boolean]

据我了解,这应该有效:

handleCallback().flatMap(..)

但它抛出:cannot resolve symbol flatMap

我想念什么?

4

2 回答 2

2

Mon Calamari的解决方案并没有解决我的问题,但是在查看FlatMap建议的博客时,我发现:

import cats.implicits._我错过了 - 并解决了我的问题 - 一切都保持不变。

于 2019-08-25T13:51:53.053 回答
1

您需要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/

于 2019-08-25T08:51:15.057 回答