【发布时间】:2017-07-12 10:02:12
【问题描述】:
如何使用 map 方法创建一个方法,该方法采用通用 Collection M[A] 和从 A 到 B 的函数并返回 Collection M[B]?
类似:
def convert[A, M[X] <: Traversable[X], B](in: M[A], f: A => B): M[B] =
in.map(f)
上面的方法编译失败:type mismatch; found : Traversable[B] required: M[B]。由于Traversable[A].map(f: A => B) 的静态类型是Traversable[B],正如Oleg Pyzhcov 所指出的那样
注意:此方法的目的不仅仅是映射集合,这只是一种简化。
【问题讨论】:
-
您发布的方法有什么问题?
-
方法编译失败:类型不匹配;找到:需要 Traversable[B]:M[B]
-
请将其包含在您的问题中。它将在未来简化搜索。
-
要完全理解下面提供的这个问题的答案,我必须阅读这篇文章docs.scala-lang.org/overviews/core/…,这可能对将来面临类似任务的其他人有用。