go 闭包

看程序闭包

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
12blog

这个就是闭包,格式为有一个函数,函数的返回值为函数类型,而且在闭包这个函数里面有一个匿名函数,在匿名函数外面必定要有一个变量,这个变量须要在匿名函数中使用,这样作的目的就是屡次调用时,外面这个变量都不会被清除,会一直变化,直到再也不调用这个闭包为止class

相关文章
相关标签/搜索