gpt4 book ai didi

function - 如何在scala中返回一个函数

转载 作者:IT老高 更新时间:2023-10-28 13:04:00 25 4
gpt4 key购买 nike

我怎样才能返回一个 函数 side-effecting lexical closure 1 在 Scala 中?

例如,我正在查看 this code sample in 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
}
}

关于function - 如何在scala中返回一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com