go语言Exercise: Fibonacci closure
2012-05-09 12:52
295 查看
Let's have some fun with functions.
Implement a
package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
pre := 0
now := 1
return func() int {
now = pre + now
pre = now - pre
return pre
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
Implement a
fibonaccifunction that returns a function (a closure) that returns successive fibonacci numbers.
package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
pre := 0
now := 1
return func() int {
now = pre + now
pre = now - pre
return pre
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
相关文章推荐
- go语言Exercise: Maps
- go语言Exercise: Slices
- go语言Advanced Exercise: Complex cube roots
- go语言Exercise: Errors
- go语言Exercise: Images
- go语言Exercise: Rot13 Reader
- Go 语言实现exercise--Loops and Functions
- go语言Exercise: Equivalent Binary Trees
- Go语言资料收集
- Go语言TCP Socket编程
- 龙芯平台上构建Go语言环境指南
- go语言数组的拷贝
- Go语言的实时GC原理和实践
- GO语言补充(一)
- go语言
- GO语言网络编程之TCP (v1)
- go语言在Windows系统下的安装并运行Hello World程序
- Go语言并发之美
- go语言 类型:字符串