package main
import (
"fmt"
"strings"
)
//累加器
func AddUpper() func(int) int {
var n int = 10
return func(x int) int {
n = n + x
return n
}
}
func RecheckFileName(suffix string) func(string) string {
return func(fileName string) string {
if !strings.HasSuffix(fileName, suffix) {
return fileName + suffix
}
return fileName
}
}
func main() {
//闭包简单使用
f := AddUpper()
fmt.Println(f(1))
fmt.Println(f(2))
fmt.Println(f(5))
//闭包复杂使用
f2 := RecheckFileName(".jpg")
fmt.Println(f2("tech"))
fmt.Println(f2("hello.jpg"))
}
运行结果