def sum(xs: List[Int]): Int = {var total = 0; for (i <- xs){total += i}; total}
但是这种写了毫无意义。我有写了如下
def sum(xs: List[Int]): Int = {
def loop(xs: List[Int], acc: Int): Int = {
if(xs.isEmpty) acc else {acc+= xs.head;loop(xs.tail,acc);acc}
}
但是报错,我其实不太懂,求助。
上边代码有几个错误
(1)最明显的是大括号没对齐。
(2)acc是参数,是个val,不能重新赋值。
(3)上述代码是函数嵌套,外层的函数返回值是Int,而实际上函数体只有一个函数定义,应该调用一下内部函数。
可以考虑下面代码