go 语言 闭包
闭包是由函数及其相关引用环境组合而成的实体(即:闭包=函数+引用环境)。
“官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
闭包演示:
func Adder() func (int) int {
	var x int
	return func(delta int) int{
		x +=delta
		return x
	}
}
func testcloser(){
	var f = Adder()
	fmt.Println(f(1),"-")
	fmt.Println(f(20),"-")
	fmt.Println(f(300),"-")
	
}
func main(){
	testcloser()
}
//输出结果
1 -
21 -
321 -
func makeSuffixFunc(suffix string) func(string) string {
	return func(name string) string {
	if !strings.HasSuffix(name, suffix) {
	return name + suffix
	}
	return name
	}
	}
func testSuffix(){
	func1:=makeSuffixFunc(".bmp")
	func2:=makeSuffixFunc(".jpg")
	fmt.Println(func1("test")) //test.bmp
	fmt.Println(func2("test")) //test.jpg
}
参考:http://blog.csdn.net/mungo/article/details/52481285
参考:http://blog.51cto.com/egon09/1836763
外部变量引用函数内部的函数,内部函数认为是一个闭包
                    
                
                
            
        
浙公网安备 33010602011771号