golang闭包
2024-08-29 18:34:05
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
最新文章
- 快递Api接口 &; 微信公众号开发流程
- 【BZOJ】4001: [TJOI2015]概率论
- StringUtils工具类
- canvas 画六边形边框
- MySQL数据很大的时候
- iOS 开发之粒子效果
- Redis - 排序
- angular的ng-class
- 如何创建phpinfo查看php信息?
- java笔记5之逻辑运算符以及&;&;与&;的区别
- Visual Studio 2008快捷键
- unity学习中经常要碰到的几种数据结构
- uva 10228 - Star not a Tree?(模拟退火)
- java中判断字符串是否为数字的方法的几种方法
- UVA - 11992:Fast Matrix Operations
- 移动端和PC端弹出遮罩层后,页面禁止滚动的解决方法及探究
- CMDB服务器管理系统【s5day90】:创建资产更新服务器硬盘信息
- [LeetCode] Number of Subarrays with Bounded Maximum 有界限最大值的子数组数量
- LeetCode(60): 第k个排列
- jenkins部署java项目在本地(三)
热门文章
- jconsole 和jvisualVM 监控远程 spring boot程序
- 在vue中import()语法不能传入变量
- SPRING中的线程池ThreadPoolTaskExecutor(转)
- https迁移实践手记
- [JAVA]Apache FTPClient操作“卡死”问题的分析和解决
- AngularJs学习笔记--Creating Services
- 【ExtJS】一个简单的TreePanel
- Java的IO流各个类的使用原则
- java POST 传值 加签 验证
- 不能修改列 ";。。";,因为它是计算列,或者是 UNION 运算符的结果。