Scala 在使用 monix TaskApp 时为cats.effect.Timer 发散隐式扩展
Posted
技术标签:
【中文标题】Scala 在使用 monix TaskApp 时为cats.effect.Timer 发散隐式扩展【英文标题】:Scala diverging implicit expansion for cats.effect.Timer when using monix TaskApp 【发布时间】:2021-09-23 06:54:04 【问题描述】:CE 2.x。莫尼克斯 3.4。第1行编译,第2行给出编译错误:
cats.kernel.Order[A] 类型的发散隐式扩展 从对象 Eq 中的方法 catsKernelOrderForFunction0 开始 Stream.sleep_(5.seconds).compile.drain.as(ExitCode.Success) // 2
import cats.effect.ExitCode, Timer
import fs2.Stream
import monix.eval.Task, TaskApp
import scala.concurrent.duration.DurationInt
object ImplicitsFreeze extends TaskApp
def run(args: List[String]): Task[ExitCode] =
Stream.sleep_(5.seconds)(implicitly[Timer[Task]]).compile.drain.as(ExitCode.Success) // 1
// Stream.sleep_(5.seconds).compile.drain.as(ExitCode.Success) // 2
【问题讨论】:
【参考方案1】:添加效果类型的注解解决了问题
Stream.sleep_[Task](5.seconds).compile.drain.as(ExitCode.Success) // 2
【讨论】:
以上是关于Scala 在使用 monix TaskApp 时为cats.effect.Timer 发散隐式扩展的主要内容,如果未能解决你的问题,请参考以下文章
使用 scala sbt 构建一个独立的 jar 以合并到一个 android 项目中
“未找到编译器镜像中的 scala.runtime”,但在使用 -Xbootclasspath/p:scala-library.jar 启动时工作
使用 circe 时如何在 Scala 中表示动态 JSON 键
使用 sbt 构建 scala 项目时,scala 的版本有啥关系?