首页 > 解决方案 > 在scala中通过谓词查找元素的功能方法是什么

问题描述

鉴于此列表中的 Person 是 Option,通过谓词查找元素的功能方法是什么。

  val idx = list.find(el => {
     el.person.find(_.id == id) match {
       case None => false
       case _ => true
     }
   })

标签: scalafunctional-programming

解决方案


list.find(_.person.exists(_.id == id))

但请注意,这会给您元素本身,而不是索引。

并且由于元素本身被包裹在 an 中,Option因此您需要将其拆开。

list.find(_.person.exists(_.id == id)).flatten

如果您确实想要索引:

list.indexWhere(_.person.exists(_.id == id))

推荐阅读