Golang的闭包

匿名函数也叫闭包,其不能单独存在,否则在编译的时候,就会报错:

non-declaration statement outside function body

但其可以被赋值给一个变量,即保存函数的内存地址到变量中,然后就可以通过变量名进行函数的调用

当然,在定义之后匿名函数之后直接使用 () 来进行调用

特殊性:

闭包被允许调用在其它环境下定义的变量

也能使某个函数捕捉到一些外部状态

也可以继承函数所声明时的作用域,这种状态被共享到闭包中,其就可以在闭包中操作,直到被销毁