繁体   English   中英

使用cats.Contravariant类型类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM