什么是closure

     最初是学习python的时候,对closure的概念十分不解,那时候并没有很多的编程经验。后来工作需要,陆续学习了几种编程语言。总结开来,语言的特性千差万别,思想都是相通的。后来python语法忘得差不多了,却搞明白了closure的概念(大概是搞明白了吧)。

     如果看过三体,可能会对程心的微宇宙有印象。在我看来,closure就是你编程大环境下的一个微宇宙。他有自己的上下文,即使从外部捕获变量,他也把这些变量变成自己环境的一部分。在主程序看来,closure简直是一个黑洞,你把东西扔进去,甚至不用扔东西进去,他就能帮你完成任务,输出想要的结果。

一个closure和一个函数指针有什么区别?这是我之前很不理解的一个东西,区别就在于这个微环境上。函数指针只能通过参数来传递变量,环境也由参数决定了。而closure能直接捕获外部变量,把他变为自己环境的一部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章