利用Golang的闭包实现斐波那契

package main

import "fmt"

func main() {
    function := Fibonacci()
    for i := 1; i <= 5; i ++ {
        fmt.Println(function())
    }
}

func Fibonacci() func() int {
    f1 := 0
    f2 := 1
    return func() int {
        temp := f2
        f2 = f1 + f2
        f1 = temp
        return temp
    }
}
/*
output:
1
1
2
3
5
*/

你可能感兴趣的:(利用Golang的闭包实现斐波那契)