我正在尝试编写一个 scala 函数来检测站点 ID(site_id )是否存在于目标站点 ID( targetSiteIds )序列中。
如果站点 id 存在于 Seq 中,则函数filterSiteById返回true,否则返回false。
但是,下面的代码一直给出错误error: Targeting does not take type parameters
。
你能帮我修复这个问题吗?
提前致谢!
val site_id = "0011a522ce0f4bbbbaa6b3c38cafaa0f"
targeting = Targeting(targetedSiteIds=Seq("0009a522ce0f4bbbbaa6b3c38cafaa0f","0010a522ce0f4bbbbaa6b3c38cafaa0f","0011a522ce0f4bbbbaa6b3c38cafaa0f") // TargetedSiteIds)
case class Targeting(targetedSiteIds: Seq[String])
var trueOrFalse=filterSitesById(targeting) // true or false
def filterSitesById(sites: Targeting[Seq[String]]): Boolean = {
sites.fold(false)(_.exists(_.idx==site_id))
}
def filterSitesById(sites: Targeting
或者filterSitesById(sites: Seq[String]])
,实际上没有Targeting[Seq[String]]
类型fold
,那么它只会将结果组合成相同类型(Seq[String]
不能折叠成Boolean
);如果是,foldLeft
那么 lambda 应该将Boolean
结果与组合起来String
;如果它使用exists
……任何手动折叠都是不必要的