package main
import (
"fmt"
"strings"
)
// 监测一个文件名是否包含某个后缀,如果不包含添加后缀
func formatFileName(suffix string) func(string) string {
return func(name string) string {
if !strings.HasSuffix(name, suffix) {
name += suffix
}
return name
}
}
func main() {
fun := formatFileName(".jpg")
fmt.Println(fun("summer"))
fmt.Println(fun("spring.jpg"))
fmt.Println(fun("autumn.jpg"))
}
返回的匿名函数和formatFileName函数的suffix变量组合成一个闭包,返回的函数引用到suffix这个变量