将任何集合映射到自己的类型,而不仅仅是Seq?

时间:2013-12-22 11:28:29

标签: scala generics

考虑此代码:

def myMap[T, S](seq: S)(implicit ev: S <:< Seq[T]): S =
  seq.map { x => x }

编译器抱怨:

error: type mismatch;
found   : Seq[T]
required: S

显然seq.map { x => x }会返回Seq[T],而不是S

但是SSeq[T]的子类,而map应该能够为另一个S构建S

如何编写接收任何Seq并返回原始类型的此类函数,而不仅仅是Seq

0 个答案:

没有答案