关于斐波那契数列例题的疑惑
来源:2-2 函数式编程例一
Morin110
2021-06-15 16:42:58
func fibonacci() func() int {
a,b :=0,1
return func() int {
a,b = b,a+b
return a
}
}
f:= fibonacci()
fmt.Println(f())//1
fmt.Println(f())
fmt.Println(f())
fmt.Println(f())
fmt.Println(f())
fmt.Println(f())
fmt.Println(f())
fmt.Println(f())
不明白的是为什么a,b的值会一直往上加。不是应该函数执行完了就没了,下次再执行又是0,1吗
1回答
NiKo_Chan
2021-06-15
这个斐波那契数列主要是为了给闭包举例,当形成闭包之后,a和b会一直在内存里
相似问题