在 Cats 2.1.x 中,类型类实例被引入范围内import cats.implicits._
scala> import cats.Show
import cats.Show
scala> Show[Int].show(42)
<console>:13: error: could not find implicit value for parameter instance: cats.Show[Int]
Show[Int].show(42)
^
scala> import cats.implicits._
import cats.implicits._
scala> Show[Int].show(42)
res1: String = 42
Run Code Online (Sandbox Code Playgroud)
然而在 Cats 2.2.0中,它无需import cats.implicits._例如
scala> import cats.Show
import cats.Show
scala> Show[Int].show(42)
val res0: String = 42
Run Code Online (Sandbox Code Playgroud)
发生了什么变化以及从现在开始我们应该如何使用导入?
我正在尝试在 REPL 中运行 scala cats。按照 cat 的指示,我安装了 ammonite REPL 并将以下导入放入predef.sc
nterp.configureCompiler(_.settings.YpartialUnification.value = true)
import $ivy.`org.typelevel::cats-core:2.2.0-M1`, cats.implicits._
Run Code Online (Sandbox Code Playgroud)
我在运行时遇到此错误amm。
predef.sc:1: value YpartialUnification is not a member of scala.tools.nsc.Settings
val res_0 = interp.configureCompiler(_.settings.YpartialUnification.value = true)
^
Compilation Failed
Run Code Online (Sandbox Code Playgroud)