闭包
2018-03-26 本文已影响0人
特仑苏_Cloud
一个函数和与其相关的引用环境组合而成的实体
package main
import(
"fmt"
)
func Addr() func(int) int{
var x int
return func(d int) int{
x += d
return x
}
}
func main(){
f := Addr()
fmt.Println(f(1))
fmt.Println(f(100))
fmt.Println(f(1000))
}
输出:
1
101
1101
package main
import(
"fmt"
"strings"
)
func makeSuffixFunc(suffix string) func(string) string{
return func(name string) string{
if !strings.HasSuffix(name,suffix){
return name + suffix
}
return name
}
}
func main(){
func1:=makeSuffixFunc(".bmp")
func2:=makeSuffixFunc(".jpg")
fmt.Println(func1("test"))
fmt.Println(func2("test"))
}