Go语言之旅 - 闭包
闭包是什么?
闭包是在词法上下文中引用了自由变量的函数,这种说法可能太过学术化了,很难理解。
用通俗的话来说, 闭包相当于在一个函数中,去捕获自由变量(在函数外部定义但在函数内被引用的变量) 。当脱离了捕获该自由变量的上下文,依旧可以使用该自由变量。
我们来看一个例子
func test(x int) func() {
return func() {
fmt.Println(x)
}
}
func main() {
f := test(1)
f()
}
输出结果为 1
test返回的匿名