练习 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
	}
}

  

posted @ 2020-12-09 20:51  rockpile  阅读(330)  评论(0编辑  收藏  举报