如何使用类型参数的scala边界来访问方法

How to use scala bounds of type parameter to access a method

我对 class 的定义如下:

class Pipe[ A ]( a: A ) {
  def |>[ B ]( f: A => B ) = f( a )
  def map[A, B, C](f: C => B)(implicit ev: A =:= List[C]): Seq[B] = { a.map(f) }
}

上面的class没有编译,在map方法中出现如下错误:

value map is not a member of type parameter A

我尝试了两种方法,但 none 有效。如何定义 map 方法,以便知道 a: A 是一个序列,因此可以使用 map 方法?

TIA。

您正在隐藏类型参数 A。将其从您的地图定义中删除:

class Pipe[ A ]( a: A ) {
    def |>[ B ]( f: A => B ) = f( a )
    def map[B, C](f: B => C)(implicit ev: A =:= List[B]): Seq[C] = a.map(f)
}