在Scala中简化两个过滤器
有没有办法将这个scala代码简化为一个简单的代码以便于理解在Scala中简化两个过滤器,scala,Scala,有没有办法将这个scala代码简化为一个简单的代码以便于理解 val selectedNames = names filter {setOfNames} val selectedPersons = persons filter {p => seletectedNames contains p.name} 这里我假设人有一个name属性 编辑 当然,值名称是通过以下方式获得的 val names = persons map _.name 我不确定这有多简单。它只是按照要求通过进行理解,做
val selectedNames = names filter {setOfNames}
val selectedPersons = persons filter {p => seletectedNames contains p.name}
这里我假设人有一个name属性
编辑
当然,值名称是通过以下方式获得的
val names = persons map _.name
我不确定这有多简单。它只是按照要求通过
进行理解,做同样的事情
val selectedPersons = for {
p <- persons
if setOfNames(p.name)
} yield p
val selectedPersons=for{
怎么样
val selectedPersons = persons filter { person => setOfNames contains person.name }
因为理解被用作应用一系列filter
、flatmap
和map
函数的语法糖。这里你错过了map
和flatmap
部分;)就我从你的代码中所能理解的,我认为完成任务的一个简单方法是直接过滤个人ns
通过他们的名字列出,不是吗?