hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 文章 - 后端开发 - 正文 看Cosplay古风插画小姐姐,合集图集打包下载:炫龙网 · 炫龙图库

golang闭包有什么用_后端开发

2019-12-28后端开发ki4网22°c
A+ A-

什么是闭包?

Go 函数可所以一个闭包。闭包是一个函数值,它援用了函数体以外的变量。 (引荐进修:go)

这个函数能够对这个援用的变量举行接见和赋值;换句话说这个函数被“绑定”在这个变量上。

我的不靠谱的明白,一个闭包相当于一个类的实例,函数体以外的变量相当于这个实例存储的变量。

没有闭包的时刻,函数就是一次性生意,函数实行终了后就没法再变动函数中变量的值(应该是内存开释了);

有了闭包后函数就成为了一个变量的值,只需变量没被开释,函数就会一向处于存活并独享的状况,因而能够后期变动函数中变量的值(由于如许就不会被go给接纳内存了,会一向缓存在那里)。

闭包的重要意义

削减变量作用域,削减对全局变量的污染。下面的累加假如用全局变量举行完成,全局变量轻易被其他人污染。

同时,一切我要完成n个累加器,那末每次须要n个全局变量。

应用背包,每一个生成的累加器myAdder1, myAdder2 := adder(), adder()有本身自力的sum,sum能够看作为myAdder1.sum与myAdder2.sum。

应用背包能够完成有本身状况的函数!

package main

import (
	"fmt"
)

func adder() func(int) int {
	sum := 0
	return func(x int) int {
		sum += x
		return sum
	}
}

func main() {
	myAdder := adder()
	
	// 从1加到10
	for i := 1; i <= 10; i++ {
		myAdder(i)
	}
	
	fmt.Println(myAdder(0))
	// 再加上45
	fmt.Println(myAdder(45))
}

效果:

55// 1+...+10
100

以上就是golang闭包有什么用的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
golang闭包有什么用_后端开发

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>