zoukankan      html  css  js  c++  java
  • 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

        外部变量引用函数内部的函数,内部函数认为是一个闭包

  • 相关阅读:
    hdu 1164 Eddy's research I
    hdu 3794 Magic Coupon
    hdu 1460 完数
    hdu 1201 18岁生日
    求一组整数中所有素数之和
    备忘录
    c判断括弧是否匹配
    N!大整数阶乘问题
    计算一个人从出生到现在活了多少天
    java web.xml配置详解(转)
  • 原文地址:https://www.cnblogs.com/wanghaijun999/p/8193894.html
Copyright © 2011-2022 走看看