zoukankan      html  css  js  c++  java
  • 对闭包的理解

    “闭包”这个概念一般用在两种毫不相干的场景中:

    第一种:在抽象代数里,一集元素称为在某个运算(操作)之下封闭,如果将该运算应用于这一集合中的元素,产生出的仍然是该集合里的元素。

    如Scheme语言中的cons过程具有该性质。

    第二种:百度解释:闭包是可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,

    而是在定义代码块的环境中定义(局部变量)...在编程领域我们可以通俗的说:子函数可以使用父函数中的局部变量,这种行为就叫做闭包!

    比如Go语言中的闭包。

    网上一般认为第二种说法更确切,这种观点的出发点是:第一种观点认为“闭包是符合一定条件的函数”,本人认为该观点是对第一种概念的误解,

    因为第一种概念强调的是集合与运算的关系,而不是运算本身。其实两种说法没有比较的意义,根本说的就是两回事。

    另外,部分观点将闭包等同于匿名函数和高阶函数,本人认为不妥,因为匿名函数和高阶函数只是闭包的一种应用。

  • 相关阅读:
    shell 算术运算符
    shell 关系运算符
    shell 布尔运算符
    shell逻辑运算符
    shell 字符串运算符
    shell 文件测试运算符
    shell 运算符
    shell 循环总结
    Shell echo命令
    利用WHID为隔离主机建立隐秘通道
  • 原文地址:https://www.cnblogs.com/wenjingu/p/3507619.html
Copyright © 2011-2022 走看看