Go语言的闭包
函数式编程特点
函数是一等公民
只用表达式,不用语句
没有“副作用”
不修改状态
引用透明
例子
func adder() func(int) int {
sum := 0
return func(v int) int {
sum += v
return sum
}
}
func main() {
// a := adder() is trivial and also works.
b := adder()
for i := 0; i < 10; i++ {
fmt.Printf("0 + 1 + ... + %d = %d\n",
i, b(i))
}
斐波那契数列
实现1
实现2
实现3
Last updated
Was this helpful?