美文网首页
【A Tour of Go 练习】:斐波纳契闭包

【A Tour of Go 练习】:斐波纳契闭包

作者: 马蹄哒 | 来源:发表于2020-02-16 13:01 被阅读0次

    让我们用函数做些好玩的事情。

    实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个斐波纳契数列 (0, 1, 1, 2, 3, 5, ...)

    解答:

    package main
    
    import "fmt"
    
    // 返回一个“返回int的函数”
    func fibonacci() func() int {
        x, y := 0, 0
        i := 0
        return func() int {
            if i == 1 {
                y = 1
            } else {
                x, y = y, x+y
            }
            i++
            return y
        }
    }
    
    func main() {
        f := fibonacci()
        for i := 0; i < 10; i++ {
            fmt.Println(f())
        }
    }
    
    

    结果:

    0
    1
    1
    2
    3
    5
    8
    13
    21
    34
    

    相关文章

      网友评论

          本文标题:【A Tour of Go 练习】:斐波纳契闭包

          本文链接:https://www.haomeiwen.com/subject/tpaefhtx.html