[go-functional-programming-about-fib.png]
开门见山,直接给出斐波那契数列生成器,接下来的文章慢慢深挖背后隐藏的奥秘,一个例子讲清楚什么是闭包....TestAutoIncrease(t *testing.T) {
a := autoIncrease()
// 1 2 3
t.Log(a(),a(),a())
}
初始调用 autoIncrease 函数并没有直接得到结果而是返回了函数引用...}
斐波那契数列生成器函数 fibonacci 的返回值是匿名函数,而匿名函数的返回值就是斐波那契数字....a
}
}
变量 a,b 定义在函数 fibonacci 内部,相对于匿名函数 func() int 来说是自由变量,在匿名函数中直接使用了变量 a,b 并没有重新复制一份,所以这种形式的环境关联的自由变量是引用...闭包归纳总结
现在再次回顾一下斐波那契数列生成器函数,相信你已经读懂了吧,有没有看到闭包的影子呢?