有没有办法将此scala代码简化为for comprehension?
val selectedNames = names filter {setOfNames}
val selectedPersons = persons filter {p => seletectedNames contains p.name}
这里我假设人们有一个名字属性。
修改
当然,值名称是
val names = persons map _.name
答案 0 :(得分:4)
怎么样
val selectedPersons = persons filter { person => setOfNames contains person.name }
答案 1 :(得分:3)
我不确定这是一个简化。它只是根据要求通过for
理解来做同样的事情。
val selectedPersons = for {
p <- persons
if setOfNames(p.name)
} yield p