golang 匿名函数(闭包)、闭包是可以包含自由(未绑定到特定对象)变量的代码块、这些变量不在这个代码或者任何全局上下文中定义。而是带定义代码块的环境中定义。要执行的代码块(由于自由变量包含在代码块中,所以这些自由变量以及他们引用的对象没有被释放)为自由变量提供绑定的计算环境(作用域)
闭包价值
闭包的价值在于可以作用函数对象或者匿名函数,对于类型系统而言,这意味着不仅要表示数据还要表示代码。支持闭包的多数语言都将函数作为变量中作为参数传递给其他函数,最重要的是能够被函数动态创建和返回。
匿名(闭包)函数的玩法
func() {
// 这是一个简单的匿名函数
}
func1 := func() {
//变量 func1 也是一个匿名函数啦
}
func2 := func func() {
return func() {
// 这里需要返回一个匿名函数呀
}
}() // 末尾的括号表明匿名函数被调用,并将返回的函数指针赋给变量a