题目描述
实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个斐波纳契数列 (0, 1, 1, 2, 3, 5, ...)
。
Code
package main
import "fmt"
// 返回一个“返回int的函数”
func fibonacci() func() int {
m, n := 0, 1
return func() int {
tmp := m
m, n = n, (m + n)
return tmp
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
运行结果:
0
1
1
2
3
5
8
13
21
34