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)'。 –