(在本地使用但在封闭范围内定义的变量)与创建闭包时名称绑定到的值或引用相关联。...自由变量
这里使用了一个比较陌生的概念: 自由变量(在本地使用但在封闭范围内定义的变量)
很显然,根据括号里面的注释说明我们知道: 所谓的自由变量是相对于闭包函数或者说匿名函数来说的外部变量,由于该变量的定义不受自己控制...a
}
}
变量 a,b 定义在函数 fibonacci 内部,相对于匿名函数 func() int 来说是自由变量,在匿名函数中直接使用了变量 a,b 并没有重新复制一份,所以这种形式的环境关联的自由变量是引用...a,b 的值或引用,定义在函数内部是无法暴露给调用者访问的,只能提升成全局变量才能实现作用域范围的扩大....怎么理解闭包
闭包是一种函数式编程中实现名称绑定的技术,直观表现为函数嵌套提升变量的作用范围,使得原本寿命短暂的局部变量获得长生不死的能力,只要被捕获到的自由变量一直在使用中,系统就不会回收内存空间!