我有一些代码,如下所示。但我希望避免这个可变变量 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
}
答案 0 :(得分:5)
我认为你需要这个简单的测试:
(-bound to bound) exists {i => s(i) && f(i) == x}
答案 1 :(得分:3)
使用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)
}