我觉得我已经在某个地方看到了这个术语,但我还没有能够在网上找到它。 Groovy语法的名称是什么,例如,可以在Gradle dependencies
闭包中的compile ('org.springframework.boot:spring-boot-starter-web') {
exclude group: 'org.slf4j', module: 'slf4j-api'
}
方法之后附加闭包?它是如何工作的?我该如何编写使用这种语法的函数?
$array = [
'k1' => 'Foo',
'k2' => 'Bar',
'k3' => 'Baz',
'k4' => 'quux',
'k5' => 'quuuux'
];
$keysToKeep = ['k1', 'k2', 'k3'];
$keysToTranslate = ['k1' => 'Hello1'];
$keysToLower = ['k2', 'k3'];
$result = collect($array)
->only($keysToKeep)
->merge($keysToTranslate)
->pipe(function ($array) use ($keysToLower) {
return $array->merge(
$array->only($keysToLower)->map(function ($value) {
return strtolower($value);
})
);
})
->toArray();
谢谢!
答案 0 :(得分:1)
Groovy具有灵活的语法,可以将闭包作为最后一个参数传递给方法。考虑:
def myCompile (a, b, c) {
println c(a,b)
}
myCompile(10, 20, { x, y -> x + y })
myCompile(10, 20) { x, y ->
x + y
}
我不认为这有一个名称,但更一般地说,Gradle build.gradle
语法形成一个流动和自然的DSL(域特定语言)。 DSL就像这样的语法糖的动机(以及许多其他例子......这是一个很大的话题)。