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"))