为什么下面的代码
def doSomething() = "Something"
var availableRetries: Int = 10
def process(): String = {
while (true) {
availableRetries -= 1
try {
return doSomething()
} catch {
case e: Exception => {
if (availableRetries < 0) {
throw e
}
}
}
}
}
产生以下编译器错误
error: type mismatch;
found : Unit
required: String
while (true) {
^
?
这在 C# 中可以正常工作。while 永远循环,所以它不能终止,因此它不能产生字符串以外的结果。或者如何在 Scala 中进行无限循环?