- 闭包
闭包
函数和其外部变量的引用
package mainimport ("fmt""strings"
)// 闭包实例-1
func Adder() func(int) int { //返回一个函数var x intreturn func(delta int) int {x += deltareturn x}
}
func adder_main() {var f = Adder()fmt.Print(f(1), "-")fmt.Print(f(20), "-")fmt.Print(f(300))
}// 闭包实例-2
func makeSuffixFunc(suffix string) func(string) string {return func(name string) string {if !strings.HasSuffix(name, suffix) { //判断传入的name是否 以suffix结尾,如果不是,那么就拼接return name + suffix}return name}
}
func makeSuffixFunc_main() {func1 := makeSuffixFunc(".bmp")func2 := makeSuffixFunc(".jpg")fmt.Println(func1("test"))fmt.Println(func2("test"))}func main() {adder_main()makeSuffixFunc_main()
}