首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >scala中用于筛选器的多个谓词链接

scala中用于筛选器的多个谓词链接
EN

Stack Overflow用户
提问于 2020-06-05 08:59:54
回答 2查看 246关注 0票数 1

我对函数式编程很陌生。我想为过滤器链接多个谓词。

假设我有要过滤的名字列表.

代码语言:javascript
运行
复制
 val names = List("cat","dog","elephant")


 //Currently I am doing like this, this is not dynamic,The list of name will come dynamically
 objects.filterSubjects(string => {
    string.endsWith("cat") ||   string.endsWith("dog") ||   string.endsWith("elephant")
  })

如何使上面的行动态,这样我就不用写了。根据用户提供的名称列表创建它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-05 09:07:30

您可以使用exists检查集合中的任何值是否实现了某个谓词(在每个元素上都有谓词),或者使用forall检查是否为所有值(以及每个元素上的谓词)填充了谓词id。

您可以使用它,例如:

代码语言:javascript
运行
复制
val names = List("cat", "dog", "elephant")
val predicate = (s: String) => names.exists(s.endsWith _)
objects.filter(predicate)
票数 4
EN

Stack Overflow用户

发布于 2020-06-05 09:07:23

您可以使用exists来检查动态列表names是否有这样的值。

代码语言:javascript
运行
复制
val names = List("cat","dog","elephant")
val objects = List("stringcat", "dog", "dognot")

objects.filter(string => {
    names.exists(n => string.endsWith(n))
})
// List(stringcat, dog)

(https://scastie.scala-lang.org/mgzlIGfHTRaN28TEetM5DA)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62211682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档