什麼是closure

     最初是學習python的時候,對closure的概念十分不解,那時候並沒有很多的編程經驗。後來工作需要,陸續學習了幾種編程語言。總結開來,語言的特性千差萬別,思想都是相通的。後來python語法忘得差不多了,卻搞明白了closure的概念(大概是搞明白了吧)。

     如果看過三體,可能會對程心的微宇宙有印象。在我看來,closure就是你編程大環境下的一個微宇宙。他有自己的上下文,即使從外部捕獲變量,他也把這些變量變成自己環境的一部分。在主程序看來,closure簡直是一個黑洞,你把東西扔進去,甚至不用扔東西進去,他就能幫你完成任務,輸出想要的結果。

一個closure和一個函數指針有什麼區別?這是我之前很不理解的一個東西,區別就在於這個微環境上。函數指針只能通過參數來傳遞變量,環境也由參數決定了。而closure能直接捕獲外部變量,把他變爲自己環境的一部分。

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