[英]Using cats.Contravariant typeclass
我正在嘗試將我的Contravariant
類型類應用於語法,並且遇到找不到它的問題。 這是我目前擁有的:
import cats._
import cats.implicits._
object Test {
type Foo[A] = A => Unit
private val f: Foo[String] = (_: String) => ()
implicit val cvar: Contravariant[Foo] = null
private val FF: Foo[Int] = f.contramap((i: Int) => //error: value contramap is not a member of Foo
String.valueOf(i)
)
}
我不明白 我提供了隱式Contravariant[Foo]
,但是語法仍然沒有應用。 怎么了?
錯誤是我沒有擴展ContravariantSyntax
。 刪除隱式和混合中的內容按預期工作:
import cats._
import cats.syntax.ContravariantSyntax
object Test extends ContravariantSyntax{
type Foo[A] = A => Unit
private val f: Foo[String] = (_: String) => ()
implicit val cvar: Contravariant[Foo] = null
private val FF: Foo[Int] = f.contramap((i: Int) => //compiles - Ok!
String.valueOf(i)
)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.