如何定义一个接受 Seq[T] 和 ParSeq[T] 作为参数的函数?
How to define a function which accept both Seq[T] and ParSeq[T] as parameter?
在许多情况下,我想将相同的 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
,我得重写一遍,内容完全一样。
我怎样才能避免它?
您可以使用 GenSeq[String]
。
ParSeq
和 Seq
都扩展了 GenSeq
,这通常用于根据您传递给它们的集合类型使函数使用并行或顺序操作.
试试这个
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
扩展 [或实施]
在许多情况下,我想将相同的 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
,我得重写一遍,内容完全一样。
我怎样才能避免它?
您可以使用 GenSeq[String]
。
ParSeq
和 Seq
都扩展了 GenSeq
,这通常用于根据您传递给它们的集合类型使函数使用并行或顺序操作.
试试这个
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