【问题标题】:Problem with Cats FlatMap in my Tagless Final class我的 Tagless Final 课程中 Cats FlatMap 的问题
【发布时间】:2019-12-29 20:14:41
【问题描述】:

我有以下课程:

class MyBot[F[_] : FlatMap]

在这个类中我有一个函数:

private def handleCallback(): F[Boolean]

据我了解,这应该可行:

handleCallback().flatMap(..)

但它会抛出:cannot resolve symbol flatMap

我错过了什么?

【问题讨论】:

    标签: scala scala-cats tagless-final


    【解决方案1】:

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

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

    【讨论】:

    • 如果你不想导入很多隐式。你只需要import cats.syntax.flatMap._
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      相关资源
      最近更新 更多