我怎样才能返回一个 函数 副作用的词汇封闭 1 斯卡拉?
例如,我在Go中查看此代码示例:
... // fib returns a function that returns // successive Fibonacci numbers. func fib() func() int { a, b := 0, 1 return func() int { a, b = b, a+b return b } } ... println(f(), f(), f(), f(), f())
打印1 2 3 5 8
而且我不知道如何在Scala中编写相同的内容。
1.在Apocalisp评论后更正
稍短一些,您不需要退货。
def fib() = { var a = 0 var b = 1 () => { val t = a; a = b b = t + b b } }