zoukankan      html  css  js  c++  java
  • java面试之闭包(closure)

    今天在学习Openresty的时候回顾了下闭包这个问题,感觉很久没有深入的了解这块的内容的,只是之前js的时候学习过闭包,突然一问,感觉不记得闭包了:

    看了一个比较有趣的答案:

    闭包,顾名思义,就是把馒头变成包子~
    
    馒头全是面粉,包上馅就成了包子
    
    包子是带馅的馒头
    
    闭包是自带运行环境的函数
    
    发哥是自带背景音乐的男人~
    
    有童鞋不理解“自带运行环境”的含义~
    
    再举例说一次吧~
    
    码农们都吃过方便面吧~ 
    它和普通面条有什么区别呢? 
    就是 自带调味包 。
    调味包就是方便面的烹饪环境。
    它简化了煮面条的流程。让用户不必练就厨艺也能吃上美味的内牛满面。
    
    函数式编程的闭包,就是函数的调味包。
    方便用户调用函数。不必为了维护繁杂的外部状态而烦恼。
    例如python,就把闭包玩出了很多花样:
    静态私有变量啦~
    偏函数啦~
    单参化~
    装饰器~
    ……
    
    当你在用这些功能的时候,其实就是在吃别人设定好调味包的“方便面”。
    

      关于闭包的参考这个博客吧,具体的解释:

    http://www.cnblogs.com/ywqbj/p/5822644.html

  • 相关阅读:
    Python深入05 装饰器
    Python深入04 闭包
    Python深入03 对象的属性
    Ubuntu (虚拟机同样) 更换内核?
    .out
    GCC 编译详解
    linux 编译内核 /boot空间不足?
    Java Swing提供的文件选择对话框
    Java Swing 实时刷新JTextArea,以显示不断append的内容?
    为什么要编译Linux内核?
  • 原文地址:https://www.cnblogs.com/fengli9998/p/7877586.html
Copyright © 2011-2022 走看看