1

我有一些如下代码。但我希望避免使用这个可变变量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
  }
4

2 回答 2

5

我认为你需要这个简单的测试:

(-bound to bound) exists {i => s(i) && f(i) == x}
于 2012-09-27T07:19:51.963 回答
3

使用exists收集方法。如果集合中的至少一个元素的指定条件为真,则该exists方法返回,否则返回。truefalse

def map(s: Set[Int], f: Int => Int): (Int => Boolean) =
  (x: Int) => {
    (-bound to bound).exists(i => s(i) && f(i) == x)
  }
于 2012-09-27T07:19:45.000 回答