元组重新分配的Scala和可变范围

时间:2012-03-15 05:39:24

标签: scala

  

可能重复:
  Tuple parameter declaration and assignment oddity

这是一个愚蠢的小功能:

def foo() {
  var v1 = 0
  var v2 = 50
  do { 
    var (v1, v2) = someSillyFunction(v1, v2)
  } while(v1 < v2)
}

def someSillyFunction(v1: Int, v2: Int) = (v1+1, v2-1)

麻烦的是我在var(v1,v2)上收到错误“递归值$ x5需要类型”。现在,我真的不想做这个代码建议的内容,因为我不想 - 在do-block中 - 声明新变量v1和v2。我只想重新分配现有的变量。但是,尝试“(v1,v2)= someSillyFunction(v1,v2)”对我没有好处。我得到';期待但是=找到'。

我总能做到:

  val (f, g) = someSillyFunction(v1, v2)
  v1 = f
  v2 = g

但是这很难看,我不知道是否有更好的方法可以重新分配。

0 个答案:

没有答案