这是一个愚蠢的小功能:
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
但是这很难看,我不知道是否有更好的方法可以重新分配。