我正在关注他们官方网站上的 go tour,有人要求我编写一个斐波那契生成器。这里是:
package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
first := 0
second := 0
return func() int{
if(first == 0) {
first = 1
second = 1
return 0
}else {
current := first
firstc := second
second = first + second
first = firstc
return current
}
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
有用。但是我认为它非常丑陋,我相信必须有更好的解决方案。我一直在考虑将其发布在代码审查上,但是因为我要求更好的方法,所以我认为这是发布它的正确位置。
有没有更好的方法来编写这段代码?
这是任务:
实现一个斐波那契函数,该函数返回一个返回连续斐波那契数的函数(一个闭包)。
撒科打诨
茅侃侃
相关分类