问题
在build.gradle脚本中,我得到了:
task 'myTestStr', {} // is the same as
Project.task('myTestStr, {}) // <-- this
但我得不到什么:
task myTest(){} //invokes on the Project instance?
我正在学习Gradle和Groovy来自Java背景,所以我很确定我错过了一些解释这种魔法的groovy-ness。
其他详细信息
使用Intellij查找声明(Ctrl + b) myTest(){} 表示它调用TaskContainer#create(java.lang.String)
答案 0 :(得分:1)
它调用完全相同。如果在方法声明中,闭包是最后一个参数,它可以在结束paren之后传递。
例如inject方法:
assert 1*1*2*3*4 == [1,2,3,4].inject(1) { acc, val -> acc * val }
assert 1*1*2*3*4 == [1,2,3,4].inject(1, { acc, val -> acc * val })