Go语言之闭包
2024-10-15 12:22:39
闭包的最初目的是为了减少全局变量,在函数调用过程中,隐式的传递共享变量。
但这样的编辑,带来的坏处是不够直接清晰。
所以,如非必要,不要使用。
对象是附有行为的数据,它在类中集中定义,
而闭包是附有数据的行为,没有显式集中定义的地方。
所以,它不是不可或缺的(或许在早期的js技术中,闭包是必须的吧)。
~~~~~~~~~~~~~~~~~~~~~~~
package main import ( "fmt" ) func fa(a int) func(i int) int { return func(i int) int { fmt.Println(&a, a) a = a + i return a } } func main() { f := fa(1) g := fa(1) fmt.Println(f(1)) fmt.Println(f(1)) fmt.Println(g(1)) fmt.Println(g(1)) }
输出如下:
D:/Go/Development/src/demo/demo.exe [D:/Go/Development/src/demo] 0xc0420082e0 1 2 0xc0420082e0 2 3 0xc0420082e8 1 2 0xc0420082e8 2 3 成功: 进程退出代码 0.
最新文章
- ubuntu中查看已有的mysql用户并修改用户名和密码
- Altium Designer XX 重新定义板框形状和大小的方法
- centos python2.6升级到2.7 还有单独的python3.5环境
- HTTP协议请求方式: 中GET、POST和HEAD的介绍以及错误提示码
- USB Mass Storage大容量存储的基本知识
- DynamicResource与StaticResource的区别
- javsscript总结
- oracle的insert的时候&;符号如何插入(转义)
- JavaScript获取地址栏中的参数
- 28 自定义View侧滑栏
- How to change from default to alternative Python version on Debian Linux
- es6 this指向
- Selenium自动化Chrome浏览器 在windows下窗口最大化
- Testlink1.9.17使用方法(第一章 前言)
- JVM高手之路七(tomcat调优以及tomcat7、8性能对比)
- 003 使用SpringMVC开发restful API--查询用户
- JAVA:IDEA安装、创建项目、tomcat配置、maven配置(1)
- .NETCore_初探
- Java使用Spring初识
- Spring框架的事务管理的分类
热门文章
- HDOJ 1698 Just a Hook (线段树)
- Shell-find . -type f -name ";*.php"; -print0 | xargs -0 wc -l
- dubbo源码分析13——服务本地暴露 exportLocal(url)
- Alpha 冲刺 (2/10)
- Fiddler对https抓包时,提示";HTTPS decryption is disabled.";
- $Django 前后端之 跨域问题(同源策略) vue项目(axios跨域请求数据)
- java乱码问题解决
- 《深入理解Oracle 12c数据库管理(第二版)》PDF
- Confluence 6 其他 MBeans 和高 CPU 消耗线程
- Confluence 6 MySQL 问题解决