Methods Groovy可选参数省略中心值

Methods Groovy可选参数省略中心值,methods,groovy,parameters,Methods,Groovy,Parameters,我在groovy中有一个方法。此方法的第二个参数为param?。我想省略这个参数,只传递第一个和第三个参数。有什么方法可以做到这一点。不改变你的课程是不行的 为什么不添加一个只接受2个参数的新方法 或者将可选参数移到末尾并为其指定默认值 或者您可以定义一个方法,该方法返回一个只接受2个参数的闭包,并为中间的参数插入一个默认值 String threeParams(String a, int b, String c) { "$a:$b:$c" } Closure midCurry(int

我在groovy中有一个方法。此方法的第二个参数为param?。我想省略这个参数,只传递第一个和第三个参数。有什么方法可以做到这一点。

不改变你的课程是不行的

为什么不添加一个只接受2个参数的新方法

或者将可选参数移到末尾并为其指定默认值

或者您可以定义一个方法,该方法返回一个只接受2个参数的闭包,并为中间的参数插入一个默认值

String threeParams(String a, int b, String c) {
    "$a:$b:$c"
}

Closure midCurry(int b) {
    { String a, String c -> threeParams(a, b, c) }
}

def twoParams = midCurry(1)

assert twoParams('tim', 'yates') == 'tim:1:yates'

不改变你的课程就不行

为什么不添加一个只接受2个参数的新方法

或者将可选参数移到末尾并为其指定默认值

或者您可以定义一个方法,该方法返回一个只接受2个参数的闭包,并为中间的参数插入一个默认值

String threeParams(String a, int b, String c) {
    "$a:$b:$c"
}

Closure midCurry(int b) {
    { String a, String c -> threeParams(a, b, c) }
}

def twoParams = midCurry(1)

assert twoParams('tim', 'yates') == 'tim:1:yates'

您讨论的是方法重载,但groovy在参数中提供了默认值选项。我可以把中间部分留作默认,其余部分我自己提供。我不这么认为。虽然您在谈论方法重载,但我不是100%确定我是否理解,但是作为groovy,在参数中提供默认值选项。我可以把中间部分留作默认,其余部分我自己提供。我不这么认为。但我不是100%肯定我能理解