博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[新手学Go]GO语言闭包的使用
阅读量:6323 次
发布时间:2019-06-22

本文共 662 字,大约阅读时间需要 2 分钟。

package mainimport (	"fmt")func main() {	f := k(11)  //调用k函数	fmt.Println(f(1))  	fmt.Println(f(2))}func k(x int) func(int) int {    //输入x为Int型,返回一个函数func参数为Int,返回值为int	return func(y int) int {	//func参数为Int返回值为Int		return x + y			//返回x+y的值	}}

闭包是函数以及相关函数引用环境的集合:闭包=函数+引用环境

例如上面那段代码中:k(x int)就是函数,return 部分就是引用环境

在闭包中所调用的变量中总是指向底层内存地址。譬如上述代码中的x,除非改变f:=k(11)中调用参数的值,那么地址是不会改变的。

func k(x int) func(int) int {           fmt.Printf("%p",x) //0x118e00e0   	return func(y int) int {                fmt.Printf("%p",x) //0x118e00e0                 return x + y				}

参考资料:

 (go闭包遐想)
https://gobyexample.com/closures (go closure)

转载于:https://my.oschina.net/websec/blog/172233

你可能感兴趣的文章
hive元数据中utf8的修改
查看>>
Linux安装步骤
查看>>
C++分割字符串
查看>>
字典树在车站查询功能中的应用
查看>>
图标左右摇摆
查看>>
<转>Windows平台下Makefile学习笔记(二)
查看>>
Matlab中plot、fplot、ezplot的使用方法和区别
查看>>
初探 Vue 生命周期和钩子函数
查看>>
力扣(LeetCode)21
查看>>
SpringBoot入门系列HelloWorld
查看>>
前端实现批量导出图片并打包压缩功能
查看>>
大厂高级前端面试题答案
查看>>
[Spring Security 5.2.0] 8.1.3 Authentication
查看>>
scrum 开发方式学习笔记
查看>>
利用tornado实现表格文件预览
查看>>
关于微信 setData 回调函数中的坑
查看>>
过年了,给亲朋好友解释「啥是程序员」
查看>>
社区投稿 | DBLE rule.xml 配置解析
查看>>
Web 开发学习笔记(1) --- 搭建你的第一个 Web Server
查看>>
C++回声服务器_1-简单版本
查看>>