我有一些如下代码。但我希望避免使用这个可变变量flag。
我怎样才能做到这一点?
def map(s: Set, f: Int => Int): Set = (x: Int) => {
var flag : Boolean = false
for(i <- -bound to bound) {
if(s(i) && f(i) == x){
flag = true
}
}
flag
}
我有一些如下代码。但我希望避免使用这个可变变量flag。
我怎样才能做到这一点?
def map(s: Set, f: Int => Int): Set = (x: Int) => {
var flag : Boolean = false
for(i <- -bound to bound) {
if(s(i) && f(i) == x){
flag = true
}
}
flag
}
我认为你需要这个简单的测试:
(-bound to bound) exists {i => s(i) && f(i) == x}
使用exists
收集方法。如果集合中的至少一个元素的指定条件为真,则该exists
方法返回,否则返回。true
false
def map(s: Set[Int], f: Int => Int): (Int => Boolean) =
(x: Int) => {
(-bound to bound).exists(i => s(i) && f(i) == x)
}