关闭

Putting closure

来自the documentation, 13.5.5

When the last parameter of a method is a closure, you can place the closure after the method call

好的,我试过了,但它并不像我想象的那样有效。考虑以下代码:

def repostiory_closure = {
    mavenCentral()
}

repositories{ //OK
    mavenCentral()
}

repositories(){ //OK
    mavenCentral()
}

repositories repostiory_closure //OK
repositories() repostiory_closure //compile-time error

所以我们可以在一个方法调用后放上唯一一个闭包字面量,而是一个Closure类型的变量。是吗?

您需要做的是将闭包作为方法调用的参数,如下所示:

repositories(repostiory_closure)

因为最后一个参数是一个闭包,所以可以像上面那样内联调用该方法。