57.笔记go语言——闭包
来源:互联网 发布:api python 编辑:程序博客网 时间:2024/06/09 16:11
57.笔记go语言——闭包
闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)。
示例代码如下:
packagemain
import"fmt"
funcExFunc(nint)func(){
sum:=n
a:=func(){//把匿名函数作为值赋给变量a(Go不允许函数嵌套。
//然而你可以利用匿名函数实现函数嵌套)
fmt.Println(sum+1)//调用本函数外的变量
}//这里没有()匿名函数不会马上执行
returna
}
funcmain(){
myFunc:=ExFunc(10)
myFunc()
myAnotherFunc:=ExFunc(20)
myAnotherFunc()
myFunc()
myAnotherFunc()
}
执行结果如下
11
21
11
21
闭包函数出现的条件:
1.被嵌套的函数引用到非本函数的外部变量,而且这外部变量不是“全局变量”
2.嵌套的函数被独立了出来(被父函数返回或赋值 变成了独立的个体),
而被引用的变量所在的父函数已结束。
对象是附有行为的数据,而闭包是附有数据的行为。
友情链接
http://www.cnblogs.com/Jifangliang/archive/2008/08/05/1260602.html
http://blog.sina.com.cn/s/blog_487109d101018fcx.html
阅读全文
0 0
- 57.笔记go语言——闭包
- 2.笔记go语言——包
- 37.笔记go语言——包
- 30.笔记go语言——关于闭包
- Go语言学习笔记---包
- Go语言学习笔记 -- 包
- Go语言-闭包
- GO语言闭包
- go语言学习------Go 记录日志——log包
- 43.笔记go语言圣经——go语言特性
- 45.笔记go语言圣经——go语言变量
- 50.笔记go语言——go语言函数细节
- 51.笔记go语言——go语言数据结构
- 59.笔记go语言——go语言中的反射
- 九、Go语言库之strconv包--GO语言笔记
- go笔记【一】——http包
- Go语言中的闭包
- Go语言学习笔记(六) [包]
- 欢迎使用CSDN-markdown编辑器
- 56.笔记go语言——go的函数类型
- jsp指令标签
- 【项目实践】——工具Eclipse中maven项目控制台无法打印内容
- mybatis的动态SQL(二)choose标签的使用
- 57.笔记go语言——闭包
- Ajax
- Hive学习笔记 4 Hive的数据导入
- HttpURLConnection、HttpClient网络请求
- python的模块代码调用
- 58.笔记go语言——函数式编程
- 自定义控件
- 蓝牙扫描 权限 BLUETOOTH,BLUETOOTH_ADMIN
- POJ 3262