2
我有一類情況是這樣的:斯卡拉遞歸案例類減少
case class Test(i: Int, t: Option[Test])
我現在想減少這種情況下類,並添加所有的我的。 。因此,舉例來說,如果我有這樣的
val x = Test(1, Some(Test(2, Some(Test(3,None)))))
輸入我希望得到的結果是6,在這裏是我到目前爲止已經試過:
def all(acc: Int, test: Test): Int = {
if (test.t.isDefined)
all(acc, test.t.get)
else
acc + test.i
}
這給了我3,我看到我錯過了遞歸中的某個小細節,我無法看到它在哪裏!任何線索?
遞歸時你是不是總結,再加上你沒有返回累加器。 –
你能詳細說明一下嗎?即使做完了,我仍然得到3! – sparkr
在遞歸調用中,您還需要將'i'添加到'acc':'all(acc + test.i,test.t.get)'。 –