不用域名访问网站,做音乐网站曲库在哪找,小微企业所得税5%优惠政策,wordpress怎么搭建用户中心什么是闭包
闭包的概念#xff0c;在很多语言中都有#xff0c;比如python#xff0c;这里要介绍的go#xff0c;闭包就是函数与其相关的环境组合的一个整体。 我们通过一个例子来理解闭包#xff1a;
func Addfunc() func (x int) int {var n int 0// 返回的是一个函数…什么是闭包
闭包的概念在很多语言中都有比如python这里要介绍的go闭包就是函数与其相关的环境组合的一个整体。 我们通过一个例子来理解闭包
func Addfunc() func (x int) int {var n int 0// 返回的是一个函数return func(x int) int {n n xreturn n}
}func main() {f : Addfunc()f(1)f(2)f(3)
}这里内部定义的func和n组成一个闭包,Addfunc是一个函数返回一个匿名函数这个匿名函数和其函数外部的变量n就构成了闭包。我们用类的思想很容易理解闭包可以把闭包看成一个类它里面包含变量是成员变量它的函数是其成员函数。我们分析闭包关键也是在于看其函数和引用到的变量。 当我们反复调用Addfunc时n只会被初始化一次上述Addfunc就会形成一个累加
闭包案例–文件名后缀
案例实现传入文件名如果不存在指定后缀则添加指定后缀
import (strings
)
// 这里外部变量suffix和内部func(string) string形成了闭包
func AddSuffix(suffix string) func(file_name string) string {return func(file_name string) string {if !strings.HasSuffix(file_name, suffix) {return file_name suffix}}
}func main() {f : AddSuffix(.jpg)f(image1)f(image2)
}