假设我有以下内容:
lazy val store: Seq[Person] = Seq(
Person(1, "Bob"),
Person(2, "Jim")
)
其中Person
定义如下:
case Class Person(
id: Long
name: String)
如何通过id从store
检索人员?
您可以将find
与比较人员id的谓词一起使用:
val p = store.find(_.id == someId)
这将为您提供一个Option[Person]
,其中第一个元素与谓词匹配,或者如果不存在具有该id的人,则为none。
这不是一个直接的答案,而是一个补充@Alexis答案的建议。
考虑在您的商店中使用Map[Int, Person]
,这将在商店变大的情况下改善Person
的查找时间。
例如:
def main(args: Array[String]) = {
lazy val store: Map[Int, Person] = Map(
1 -> Person(1, "Bob"),
2 -> Person(2, "Jim")
)
val someId = 1
val result: Option[Person] = store.get(someId)