我正在尝试编写一个方法,它接受任何类型的集合CC[_]并将其映射到一个新的集合(相同的集合类型,但不同的元素类型),我正在挣扎皇家.基本上我正在尝试实现map但不是集合本身.
我正在尝试使用签名实现一个看起来有点像的方法:
def map[CC[_], T, U](cct: CC[T], f: T => U): CC[U]
Run Code Online (Sandbox Code Playgroud)
它的用法是:
map(List(1, 2, 3, 4), (_ : Int).toString) //would return List[String]
Run Code Online (Sandbox Code Playgroud)
我感兴趣的答案也将在哪里工作CC是Array我很感兴趣,我尝试(下)都最终没有奏效的原因.
(对于不耐烦的人,在接下来的内容中,我完全没有让它发挥作用.重申一下,问题是"我怎么能写出这样的方法?")
我这样开头:
scala> def map[T, U, CC[_]](cct: CC[T], f: T => U)(implicit cbf: CanBuildFrom[CC[T], U, CC[U]]): CC[U] =
| cct map f
^
<console>:9: error: value map is not a member of type parameter CC[T]
cct map f
^
Run Code Online (Sandbox Code Playgroud)
好的,这是有道理的 - 我需要说这 …