http://blog.51cto.com/speakingbaicai/1703229

https://www.jianshu.com/p/fa21e6fada70

所谓闭包就是一个函数“捕获”了和它在同一作用于的其他常量和变量。

package main

import "fmt"

func addNumber(x int) func(int) {
fmt.Printf("x: %d, addr of x:%p\n", x, &x)
return func(y int) {
k := x + y
x = k
y = k
fmt.Printf("x: %d, addr of x:%p\n", x, &x)
fmt.Printf("y: %d, addr of y:%p\n", y, &y)
}
} func main() {
addNum := addNumber(5)
addNum(1)
addNum(1)
addNum(1) fmt.Println("---------------------") addNum1 := addNumber(5)
addNum1(1)
addNum1(1)
addNum1(1)
}
x: 5, addr of x:0xc4200140c8
x: 6, addr of x:0xc4200140c8
y: 6, addr of y:0xc420014100
x: 7, addr of x:0xc4200140c8
y: 7, addr of y:0xc420014118
x: 8, addr of x:0xc4200140c8
y: 8, addr of y:0xc420014130
---------------------
x: 5, addr of x:0xc420014148
x: 6, addr of x:0xc420014148
y: 6, addr of y:0xc420014158
x: 7, addr of x:0xc420014148
y: 7, addr of y:0xc420014170
x: 8, addr of x:0xc420014148
y: 8, addr of y:0xc420014188

最新文章

  1. 快递Api接口 & 微信公众号开发流程
  2. 【BZOJ】4001: [TJOI2015]概率论
  3. StringUtils工具类
  4. canvas 画六边形边框
  5. MySQL数据很大的时候
  6. iOS 开发之粒子效果
  7. Redis - 排序
  8. angular的ng-class
  9. 如何创建phpinfo查看php信息?
  10. java笔记5之逻辑运算符以及&&与&的区别
  11. Visual Studio 2008快捷键
  12. unity学习中经常要碰到的几种数据结构
  13. uva 10228 - Star not a Tree?(模拟退火)
  14. java中判断字符串是否为数字的方法的几种方法
  15. UVA - 11992:Fast Matrix Operations
  16. 移动端和PC端弹出遮罩层后,页面禁止滚动的解决方法及探究
  17. CMDB服务器管理系统【s5day90】:创建资产更新服务器硬盘信息
  18. [LeetCode] Number of Subarrays with Bounded Maximum 有界限最大值的子数组数量
  19. LeetCode(60): 第k个排列
  20. jenkins部署java项目在本地(三)

热门文章

  1. jconsole 和jvisualVM 监控远程 spring boot程序
  2. 在vue中import()语法不能传入变量
  3. SPRING中的线程池ThreadPoolTaskExecutor(转)
  4. https迁移实践手记
  5. [JAVA]Apache FTPClient操作“卡死”问题的分析和解决
  6. AngularJs学习笔记--Creating Services
  7. 【ExtJS】一个简单的TreePanel
  8. Java的IO流各个类的使用原则
  9. java POST 传值 加签 验证
  10. 不能修改列 "。。",因为它是计算列,或者是 UNION 运算符的结果。