考虑以下示例:
有没有更高效、更优雅(并且功能更强大)的方法来实现这个目标?
case class Person(name: String, age: Int)
case class Family(surname: String, members: List[Person])
val families = List(
Family("Jones",
List(Person("Indiana", 50), Person("Molly", 20))),
Family("Black",
List(Person("Jack", 55), Person("Derek", 12))))
我希望编写一个函数,用于在List [Family]
对象中查找具有特定姓名的人。这是我当前的解决方案:
def find(name: String, families: List[Family]): Option[Person] = {
families.find(f => f.members.exists(m => m.name == name)).map(f => f.members.find(m => m.name == name).get)
}
有没有更高效、更优雅(并且功能更强大)的方法来实现这个目标?
families.flatMap(_.members).find(_.name == name)
完成了任务。但是你的数据模型选择似乎不太合适,因为无法获取Person
的姓氏。 - undefined