Gradle基礎知識——Groovy的閉包
阿新 • • 發佈:2019-02-20
- 定義閉包
def closure_name = {
// closure body
}
上面程式碼定義一個名為 closure_name 的閉包,用途由 closure body 中的程式碼定義。匿名閉包指不宣告閉包變數名,只有閉包方法體{ //closure body }
- 無參閉包
def closure_with_no_param = {
println 'hello,world!'
}
執行closure_with_no_param()
或者closure_with_no_param.call()
,將輸出hello,world!
- 含參閉包
def closure_with_param = {
x,y-> println "x plus y is " + (x+y)
}
執行closure_with_param(1,2)
,結果為x plus y is 3!
可以設定預設引數值,例如:
def closure_with_param = {
x,y=0-> println "x plus y is " + (x+y)
}
執行closure_with_param(1)
,結果為x plus y is 1!
- 與方法/函式的結合使用
定義閉包
def closure_demo = {
x -> println x
}
定義方法
def method_name(Closure closure_name){
for(int i=0;i<=100;i+=1){
closure_name(i)
}
}
執行method_name(closure_demo)
或者method_name closure_demo
,結果輸出如下:
1
2
3
...
100
- Gradle構建指令碼簡析
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
其中:
dependencies
為方法或函式名,引數為閉包型別- 接下來的
{...}
是一個閉包
//這是個閉包
{
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
group: 'commons-collections'
將group
變數的值設為commons-collections
compile
為方法/函式
參考文獻