gpt4 book ai didi

scala - 过滤案例类对象属性的最佳实践

转载 作者:行者123 更新时间:2023-12-01 09:45:10 24 4
gpt4 key购买 nike

<分区>

假设我有这样的案例类

case class Person(name:String, id: Int)
case class Country(name:String, population: Long, continent:String)
case class City(name: String, place: Country)

现在我想用这段通用代码做一个搜索操作

def search[T](searchIn: Seq[T], seachFor:String) : Seq[T] = {
val result = searchIn flatMap {
case p: Person if(p.name.contains(searchFor)) => Some(p)
case c: Country if(c.continent.contains(searchFor)) => Some(c)
case c: City if(c.name.contains(serachFor)) => Some(c)
case _ => None
}
result.map(_.asInstanceOf[T])
}

这里的挑战是我可能需要在更多属性中搜索现有案例类,或者我需要更多案例类。

我不觉得上面的代码是通用的,因为我需要知道它是哪个对象,在其中搜索并将其转换回来。

解决此类问题的最佳方法是什么?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com