我是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