我有这个简单的函数返回一些Status
:
def getStatus : String =
{
//...
}
我想等到这个返回特定状态,但在退出之前仍然计算这个号码:
def wait =
{
var count = 0
while (getStatus != "smeStatus" && count < 10) {
// some code here
count++
}
}
如何避免使用var
?
答案 0 :(得分:3)
您可以使用递归计数的递归方法并将其返回+ 1:
def waitUntilDone(countSoFar: Int): Int = {
if (getStatus != "smeStatus" && countSoFar < 10) {
// some code here
waitUntilDone(countSoFar + 1)
} else {
countSoFar
}
}
// invoke it starting with 0:
val count = waitUntilDone(0)
答案 1 :(得分:0)
def status = ""
def waiting: Unit = {
def check(count: Int): Unit = {
if(count < 10 && status != "smeStatus") {
// do something
check(count + 1)
}
}
check(0)
}