我對Groovy documentation中使用的術語「閉包」有點困惑。根據文檔,它們對閉包的定義更像是一個匿名函數或lambda。Groovy關閉的概念
我知道支持第一類函數的語言通常允許構建閉包。但是,這兩個概念是有區別的。
例如,根據Groovy的文檔:
在Groovy的封閉件是一個匿名 塊的代碼,用於獲取參數, 返回一個值,並且參考和使用在其周圍聲明 變量 範圍。
在函數式語言中,這樣的匿名代碼塊可能被稱爲一般的匿名lambda表達式,或者帶有未綁定變量的lambda表達式,或者如果未包含對未綁定變量的引用(如閾值in前面的例子)。 Groovy沒有這樣的區別。
然後根據Wikipedia頁面上瓶蓋:
術語閉合往往誤用來指匿名函數。
我錯過了什麼?
也許我在閱讀該段時眼睛一睜。 – Steve 2011-03-16 14:28:44
這可能是最後一句'我們非常清楚這個術語或多或少是錯誤的,但是當用一種不知道「差異」的語言談論代碼時,它簡化了很多事情。 – 2011-03-16 14:30:08
那部分很清楚。然而,之前的東西讓我的大腦在精神上放棄了,並跳過了整個段落。 :) – Steve 2011-03-16 14:34:29