看懂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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章