Closure

闭包

package main

import (
	"fmt"
)

func a() func() int {
	i := 0
	b := func() int {
		i++
		fmt.Println(i)
		return i
	}
	return b
}

func main() {
	c := a()
	c()
	c()
	c()

	a() //不会输出i

	c2 := a()
	c2()
	c2()
	c2()
}

/*
1
2
3
1
2
3
*/

闭包对象指针

外部引用函数参数局部变量

返回2个闭包

递归函数

数字阶乘 factorial

斐波那契数列(Fibonacci)

Last updated