簡體   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