看程序
package main import "fmt" func main() { f:=test2() fmt.Println(f()) fmt.Println(f()) } func test2() func() int { a := 10 return func() int { a++ return a } }
结果为:
11
12
这个就是闭包,格式为有一个函数,函数的返回值为函数类型,并且在闭包这个函数里面有一个匿名函数,在匿名函数外面一定要有一个变量,这个变量需要在匿名函数中使用,这样做的目的就是多次调用时,外面这个变量都不会被清除,会一直变化,直到不再调用这个闭包为止