练习:斐波纳契闭包 让我们用函数做些好玩的事情。 实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个斐波纳契数列 `(0, 1, 1, 2, 3, 5, ...)`。
程序员成长之旅 · 程序员成长之旅/Go语言学习/笔记 · 211 字
练习:斐波纳契闭包
让我们用函数做些好玩的事情。
实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个 斐波纳契数列 (0, 1, 1, 2, 3, 5, ...)。
package main import "fmt" // 返回一个“返回int的函数” func fibonacci() func() int { temp:=0 back1,back2:=0,1 return func() int { temp = back1// back1,back2 = back2,(back1+back2) return temp } } func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Println(f()) } } //结果 0 1 1 2 3 5 8 13 21 34
22
1 package
main 2 3 import
"fmt" 4 5 // 返回一个“返回int的函数” 6 func
fibonacci () func () int { 7
temp :
0 8
back1 , back2 :
0 , 1 9
return
func () int
{ 10
temp
=
back1 // 11
back1 , back2
=
back2 ,( back1 + back2 ) 12
return
temp 13
} 14 } 15 16 func
main () { 17
f :
fibonacci () 18
for
i :
0 ; i
<
10 ; i ++ { 19
fmt . Println ( f ()) 20
} 21 } 22 //结果 23 0 24 1 25 1 26 2 27 3 28 5 29 8 30 13 31 21 32 34