看懂Gradle腳本(2)- Groovy語言的閉包語法

本篇文章討論下面這一小段Gradle腳本:

repositories {
    mavenCentral()
}

閉包字面量

閉包字面量看起來像Java裏的代碼塊:用一對兒花括號包起來。前面討論過,方法調用的圓括號可以省略,補上圓括號之後,腳本看起來是這樣:

repositories({ // <--
    mavenCentral()
})

如果閉包是方法的最後一個參數,那麼閉包可以放在圓括號外面

也就是說,上面的代碼寫成這樣也是可以的:

repositories() { // <--
    mavenCentral()
}

結論

文章開頭的腳本實際上是調用repositories方法,並且把一個閉包當做參數傳入,有Javadoc爲證。


舉一反三

下面這段腳本定義了一個Task,並且給它定義了一個Action,打印出一句話:

task 'myTask' {
    doLast {
        println 'hello world!'
    }
}
下面是補上括號之後的腳本:

task('myTask', {
    doLast({
        println('hello world!')
    })
})
task方法簽名在這裏



發佈了61 篇原創文章 · 獲贊 72 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章