Groovy流水賬-閉包

什麼是閉包?簡單來說,就是一段可執行的代碼塊或者函數指針。你不僅可以直接調用一個閉包,也可以將閉包作爲參數傳遞給一個函數。

簡單定義一個閉包:

def greetings = {println “Hello,${it}”}

注意,這邊的it是閉包默認的參數,也就是當你的閉包只有一個參數時。你可以直接調用閉包:

greetings("Circle.");

當然,你如果不想使用提供it參數,你也可以指定自己的參數:

def greetings = {param -> println "hello, ${param}"}


如果將閉包作爲最後一個參數傳遞給一個方法,你可以使用一種優雅的方式來調用該方法,例如:

def someMethod(param1, closure){
//code blocks
}
你就可以採用someMethod("dd"){print "${it}"}的方式來調用閉包。

Groovy閉包的三個重要的內置對象:this,owner,delegate。一般情況下,delegate指向owner的值,可以通過設置delegate值來獲取groovy的元編程能力。
this對象永遠指向最外層的對象,owner對象指向包含當前閉包的對象,delegate一般指向owner對象。對於delegate指向要慎用,如果該閉包會在其他地方被使用,需要注意delegate的負面影響。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章