📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

练习:斐波纳契闭包 让我们用函数做些好玩的事情。 实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个斐波纳契数列 `(0, 1, 1, 2, 3, 5, ...)`。

创建时间2019-08-08最后修改2019-08-08原位置/程序员成长之旅/Go语言学习/笔记/字数211
目录:程序员成长之旅/Go语言学习/笔记

练习:斐波纳契闭包

让我们用函数做些好玩的事情。

实现一个 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