实现Eq类型时Scala Cats错误

时间:2018-02-09 15:14:16

标签: scala scala-cats

我试图为一个案例类实现一个Eq,并且我不断收到编译器错误。我很确定我错过了一些进口,但不确定是哪一种。这是我做的:

import cats.Eq
import cats.syntax.eq._

final case class Cat(name: String, age: Int, color: String)
implicit val catEq: Eq[Cat] = Eq.instance[Cat] { (cat1, cat2) =>
  cat1.name === cat2.name && cat1.age === cat2.age && cat1.color === cat2.color 
}

我正在使用cats-core 1.0.1库。以下是编译器所说的内容:

<console>:17: error: value === is not a member of String
         cat1.name === cat2.name && cat1.age === cat2.age && cat1.color === cat2.color
                   ^
<console>:17: error: value === is not a member of Int
         cat1.name === cat2.name && cat1.age === cat2.age && cat1.color === cat2.color
                                             ^
<console>:17: error: value === is not a member of String
         cat1.name === cat2.name && cat1.age === cat2.age && cat1.color === cat2.color

1 个答案:

答案 0 :(得分:3)

您错过了Eq

String实例

您可以使用

导入它
import cats.instances.string._