为什么 Groovy 闭包声明一个最大值,而不是常量参数

Why do Groovy closures declare a maximum, rather than constant number of parameters

当声明一个闭包时,我们可以使用以下方法查询接受参数的数量:

Closure#getMaximumNumberOfParameters()

例如:

def closure = { String param ->
}
println(closure.maximumNumberOfParameters)

将输出:

1

为什么该方法将参数的数量声明为最大值而不是常数?

什么情况下这个方法的return值会和闭包中声明的实际参数个数不同?

默认参数?

def closure = { String param = 'something' ->
}

所以你可以在技术上调用

closure()

closure('something else')