我刚开始学习scala。我在 Eclipse 中尝试实现递归函数时遇到错误“简单表达式的非法开始”:
def foo(total: Int, nums: List[Int]):
if(total % nums.sorted.head != 0)
0
else
recur(total, nums.sorted.reverse, 0)
def recur(total: Int, nums: List[Int], index: Int): Int =
var sum = 0 // ***** This line complained "illegal start of simple expression"
// ... other codes unrelated to the question. A return value is included.
谁能告诉我在(递归)函数中定义变量时我做错了什么?我在网上进行了搜索,但无法解释此错误。
最佳答案
变量声明 ( var
) 不返回值,因此您需要以某种方式返回值,代码如下所示:
object Main {
def foo(total: Int, coins: List[Int]): Int = {
if (total % coins.sorted.head != 0)
0
else
recur(total, coins.sorted.reverse, 0)
def recur(total: Int, coins: List[Int], index: Int): Int = {
var sum = 0
sum
}
}
}
关于scala - Scala 中简单表达式的非法开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962563/