Golang中的闭包
一、全局变量和局部变量的特点
1.全局变量:定义在全局中,常驻内存,可能会污染全局。
2.局部变量:定义在方法中,不常驻内存,不污染全局。
3.闭包的作用:使变量常驻内存且不污染全局。
二、闭包
1.闭包是指:有权访问另一个函数作用域中的变量的函数。
2.创建方法:在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量。
3.如:
func adder() func(x int) int {
var i = 10
return func(x int) int {
i += x
return i
}
}
函数里边嵌套一个函数,返回里边的函数就形成了闭包。
此时定义变量:var fn = adder(),调用三次fn(10)后,其输出结果分别为20、30、40。因为变量i常驻内存,每一次调用都会修改i的值,使其加x。
本文作者:夜满星河
本文链接:https://www.cnblogs.com/ThXin/p/16317878.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步