首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cats.Contravariant类型类

使用cats.Contravariant类型类
EN

Stack Overflow用户
提问于 2018-08-22 22:56:16
回答 1查看 115关注 0票数 1

我试图将我的Contravariant类型类与语法一起应用,但遇到了找不到它的问题。这是我目前所拥有的:

代码语言:javascript
复制
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],但是语法无论如何都不会被应用。怎么了?

EN

回答 1

Stack Overflow用户

发布于 2018-08-22 23:10:21

错误是我没有扩展ContravariantSyntax。删除隐式和混合在其中的工作如预期:

代码语言:javascript
复制
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)
  )
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51969673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档