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 中国大陆许可协议进行许可。

posted @   夜满星河  阅读(653)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起