golang 闭包求斐波那契数列
package main
import "fmt"
// 返回一个“返回int的函数”
func fibonacci() func() int {
	var last = 0
	var cur = 1
	var count = 0
	return func() int {
		return func() int {
			switch count {
			case 0:
				count += 1
				return 0
			case 1:
				count += 1
				return 1
			default:
				last, cur = cur, last + cur
				count += 1
				return cur
			}
		}()
	}
}
func main() {
	f := fibonacci()
	for i := 0; i < 10; i++ {
		fmt.Println(f())
	}
}

 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号