全局变量的特点:
1.常驻内存
2. 污染全局
局部变量的特点:
1.不常驻内存
2.不污染全局
而Go语言的闭包可以做到
1.可以让变量常驻内存
2.可以让变量不污染全局
所以闭包主要是为了避免全局变量的滥用。
闭包
1.闭包是指有权访问另一个函数作用域中的变量的函数
2.创建闭包的常见方式就是在一个函数内部创建另一个函数, 内函数可以访问外函数的变量
注意:
闭包里作用域返回的局部变量不会被立刻销毁回收,但过度使用闭包可能会占用更多内存,导致性能下降。
在定义函数时,不能在函数内部再定义一个函数,如果我们想要在一个函数内部再封装一个方法,就需要使用到匿名函数。
匿名函数即没有名字的函数,一个函数内部的匿名函数可以访问到这个外部函数中的变量