【发布时间】:2011-05-03 06:20:45
【问题描述】:
我正在尝试实现一个记忆斐波那契数函数,但我遇到了无法解决的编译错误。以下代码是我目前所拥有的。
var fibs = Map.empty[Int, Int]
fibs += 0 -> 1
fibs += 1 -> 1
fibs += 2 -> 2
val fib = (n: Int) => {
if (fibs.contains(n)) return fibs.apply(n)
else{
// Error here
val result = fib(n - 1) + fib(n - 2)
fibs+= n -> result
return result
}
}
println(fib(100))
错误是:
递归
fib需要类型
我已经尝试在不同的地方输入闭包的返回类型,但我似乎无法让它工作。
像val fib = (n: Int): Int => { 这样声明闭包会产生不同的编译错误。
你能帮我解决这个编译错误吗?
【问题讨论】: