我是Scala的新手,我必须编写包含内部函数的示例代码。例如,下面给出了这个函数,我明白,当fib被执行时,它立即执行最后一行,即fibS(x,0,1),但是当这个函数停止时我不会得到,因为如果返回z,wouldn'程序再次调用fibS(x,0,1)?由于在Scala中调用内部函数
def fib(x: Long): Long = {
def fibS(i: Long, z: Long, y: Long): Long = {
if (i > 0)
fibS(i-1, z+y, z)
else z
}
fibS(x, 0, 1)
}
此代码不正确 - 它甚至没有编译,因为从未定义过“z”。我认为你的意思是用'z'表示'x'。 – ghik
是的,这是一个错字 – user2947615
我不明白在这里投票的原因...... – pedrofurla