代码:
package main
import (
"path"
"fmt"
)
func confirmFileType(suf string) func(string)string{
return func(name string) string{
if path.Ext(name) == ""{
return name + suf
}else{
return "文件已经有后缀:"+ name
}
}
}
func main() {
jpgFUnc:=confirmFileType(".jpg")
txtFUnc:=confirmFileType(".txt")
fmt.Println(jpgFUnc("test.png"))
fmt.Println(txtFUnc("test"))
}
解析: 闭包定义:引用外部变量的函数称为闭包。 案例中makeSuffixFunc函数的返回值为一个函数,返回的函数调用了makeSuffixFunc函数中的suffix变量,完成了闭包操作。
(以上内容为原创,转载请注明出处©南雨北斗)