知识卡片
闭包绑定环境
内容
闭包把函数和外部引用环境一起保存,让内部函数在外层函数结束后仍能访问相关变量。它适合延迟执行和状态封装,但循环变量捕获不当会制造隐蔽错误。
参考来源
- 位置:《Go语言高级开发与实战》第2章《Go语言高级编程技巧》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_015.html)
- 结论依据:原文定义闭包由函数与引用环境组成,并说明内层函数可使用外层变量,即使外层函数执行完毕,因此支撑环境绑定结论。
- 原始内容:mous/func4.go。 3 闭包 闭包(closure)是由函数和与其相关的引用环境组合而成的实体。闭包是从其主体外部引用变量的函数值。函数可以访问并分配给引用的变量,从这个意义上说,函数是被“绑定”到了变量上。闭包的实质是函数的嵌套,内层的函数可以使用外层函数的所有变量,即使外层函数已经执行完毕。其使用示例如下。 代码路径:chapter2/advancedFunc/anonymous/closure1.go。 闭包通过引用的方…