golang函数闭包实现波费纳契数列

直接看代码:

package main

import "fmt"

func fibonacci(s1, s2 int) func() int {
fmt.Println("start with:", s1, s2)
left := s1
right := s2
return func() int {
nest := left + right
left = right
right = nest
return nest
}
}
func main() {
f := fibonacci(0, 1)
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}

posted @ 2019-02-17 17:00  cfclang  阅读(200)  评论(0编辑  收藏  举报