Go使用闭包和defer简洁实现斐波那契数列 package main import "fmt" func fibonacci() func() int { first:=0 second:=1 return func() int{ defer func(){first,second=second,(first+second)}() return first//每次都返回第一个值,返回后再用defer进行计算已使数列向前推进 } } func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Println(f()) } }