scala - 在scala中通过谓词查找元素的功能方法是什么
问题描述
鉴于此列表中的 Person 是 Option,通过谓词查找元素的功能方法是什么。
val idx = list.find(el => {
el.person.find(_.id == id) match {
case None => false
case _ => true
}
})
解决方案
list.find(_.person.exists(_.id == id))
但请注意,这会给您元素本身,而不是索引。
并且由于元素本身被包裹在 an 中,Option
因此您需要将其拆开。
list.find(_.person.exists(_.id == id)).flatten
如果您确实想要索引:
list.indexWhere(_.person.exists(_.id == id))
推荐阅读
- java - 我不明白为什么这段代码不起作用 for int 错误
- android - 从房间数据库中删除所有记录
- c# - 字段初始值设定项不能引用非静态字段:从 { get; 创建对象;放; } 结果
- swift - 为什么要用T!而不是 T 作为函数参数和返回类型?
- c# - 使用 Microsoft.Graph 获取当前应用程序权限
- python - 为什么这个 JSON 数据无效?
- d3.js - 如何在折线图中找到特定文本刻度的 SVG 坐标?
- javascript - 如何将美元符号添加到车把模板
- reactjs - 使用 React Hooks 重新渲染的次数过多
- php - Lavavel 迁移在具有 MySQL RDS DB 的 LAMP AWS 实例中不起作用 --> SQLSTATE[HY000] [2002] 连接超时