【发布时间】:2019-08-15 23:35:16
【问题描述】:
我正在尝试将部分函数应用于泛型集合,同时返回特定集合而不是原始类型的 Traversable。
这是我尝试过的(除其他外):
def filter[A, B, C <: Traversable[A],Y<:B, D <: Traversable[Y]](xs: Option[D] with TraversableLike[A,Option[D]])(pf:PartialFunction[A,B]): D = {
xs.collect(pf)
}
def filter[A, B, C <: Traversable[A], D <: Traversable[B]](xs: D with TraversableLike[A,D])(pf:PartialFunction[A,B])(implicit ev: B =:= Option[Double]): D = {
xs.collect(pf)
}
知道为什么implicit ev: B =:= Option[Double] 找不到正确的类型吗?
我从这些帖子中获得灵感:
Returning original collection type in generic method
How do I apply the enrich-my-library pattern to Scala collections?
【问题讨论】:
标签: scala generics scala-collections