golang初学之 斐波纳契闭包

package main

import "fmt"

// fibonacci 函数会返回一个返回 int 的函数。
func fibonacci() func() int {
  a , b:= 0, 1
  return func() int {
    defer func() {
      a, b = b, a+b
    }()
    return a
  }
}

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

posted on 2016-05-14 19:38  白鹤亮翅  阅读(367)  评论(0)    收藏  举报