在许多情况下,我希望将相同的filter
或map
功能应用于Seq
或ParSeq
集合。但是我不想两次编写代码。
def fun(data:ParSeq[String], num_start:Int,num_end:Int) = {
data filter { x=>
val temp = extract_number(x)
num_start <= temp && temp <= num_end
}
}
与上面的代码一样,对于Seq[String]
,我需要应用fun
,我必须重新编写它,内容完全相同。
我怎么能避免它?
答案 0 :(得分:5)
试试这个
def fun(data:GenSeq[String], num_start:Int,num_end:Int) = {
data filter { x=>
val temp = extract_number(x)
num_start <= temp && temp <= num_end
}
}
GenSeq是trait
,ParSeq
和Seq
答案 1 :(得分:1)
您可以使用GenSeq[String]
。
ParSeq
和Seq
都扩展GenSeq
,这通常用于根据您传递给它们的集合类型,使用并行或顺序操作的函数。< / p>