练习 6.9 不使用递归但使用闭包改写第 6.6 节中的斐波那契数列程序。
package main
import "fmt"
const LIM = 40
func main() {
f := fibonacci() //返回一个闭包函数
var array [LIM]int
for i := 0; i < LIM; i++ {
array[i] = f()
}
fmt.Println(array)
}
func fibonacci() func() int {
back1, back2 := 0, 1
return func() int {
// 重新赋值
back1, back2 = back2, back1+back2
return back1
}
}

浙公网安备 33010602011771号