go语言学习-笔记2

斐波那契数列 go 语言, 函数闭包实现

package main

import "fmt"


func fibonacci() func() int {
        cur := 1
        next := 1
        return func() int {
                ret := cur  // 记录当前值
                cur = next  // 当前值移动到下一个
                next += ret // 重新计算下一个
                return ret  // 返回移动前的当前值
        }
}

func main() {
        f := fibonacci()
        for i := 0; i < 10; i++ {
                fmt.Println(f())
        }
}

  

posted @ 2020-03-24 01:16  upupon  阅读(...)  评论(...编辑  收藏