如何在go中写出漂亮简洁的function closure
有个excercise,是写出fibonacci,用function closure
这个是几经周折后的答案
package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
x, y := 0, 1
return func() int{
x, y = y, x+y
return y-x;
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
其实后来想想,想理解function closure, 就把它当成c/c++里的静态变量好了。
无非是通过这种特殊的所谓function closure绕了一个好大的圈子,估计跟实现有关吧。
后续深入的时候,再做研究
本文介绍如何使用Go语言中的函数闭包来实现Fibonacci数列生成器。通过一个具体的示例代码展示了函数闭包的概念及其实现方式,并将其与C/C++中的静态变量进行了类比。
240

被折叠的 条评论
为什么被折叠?



