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

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

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

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

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

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

    比如Go语言中的闭包。

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

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

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

  • 相关阅读:
    作为技术管理者,我如何保持技术判断力
    管理沟通
    管理规划
    nginx 在浏览器端保持cookie 一致
    openssl 升级操作 -2
    iptables 实际操作 之 规则查询 2
    iptables 概念 1
    openssl 升级 操作 -1
    使用秘钥对登录服务器
    SSH配置免秘钥登录
  • 原文地址:https://www.cnblogs.com/wenjingu/p/3507619.html
Copyright © 2011-2022 走看看