golang中的闭包其实就是一个函数,所有匿名函数都是闭包。
为文件增加后缀为例:这个函数返回了闭包接收到了suffix变量,然后闭包再接收filename变量
func Makeadd(suffix string) func(string) string{
return func(name string) string {
if !strings.HasSuffix(name,suffix) {
return name + suffix
}
}
}
addzip := Makeadd(".zip")
addTgz := Makeadd(".tar.gz")fmt.Println(addzip("fiename"),addTgz("filename"))