在go语言中,函数参数都是以复制的方式(不支持以引用的方式)传递。
但特殊的是:go语言闭包函数对外部变量是以引用的方式引用
问题:
为什么go语言闭包函数对外部变量是以引用的方式引用
一般函数传参以复制的方式可参考:golang的函数传参
说明是闭包
首先要知道说明什么是闭包
- 闭包可以理解为"定义在一个函数内部的函数"
- 只有函数内部的子函数才能读取局部变量,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁
闭包的用途
闭包的用途
- 可以读取函数内部的变量
- 让这些变量的值始终保持在内存中
扩展
python装饰器对闭包的使用
import time
def timer(func)