Gav*_*los 8 parameters groovy function default-value
我有一个简单的问题。为什么下面的情况我可以省略中间参数?
def testMethod(arg1, arg2 = "arg2", arg3) {
println arg1
println arg2
println arg3
}
def "testMethod"() {
given:
testMethod("arg1", "arg3")
}
Run Code Online (Sandbox Code Playgroud)
输出:
inj*_*eer 13
在 groovy 中,您可以为方法的参数分配默认值,使这些参数成为可选的。
通常可选参数是尾随参数,从调用此类方法的角度来看,这是有意义的。
您还可以像您一样为中间参数声明默认值。在这种情况下,您应该知道哪些参数将获得默认值,哪些不会。
考虑您的示例的扩展:
def testMethod(arg1, arg2 = "arg2", arg3) {
println arg1
println arg2
println arg3
}
testMethod 1, 3
println '-----------'
def testMethod1(arg1, arg2 = "arg2", arg3 = 'arg3') {
println arg1
println arg2
println arg3
}
testMethod1 1,2
Run Code Online (Sandbox Code Playgroud)
它打印:
1
arg2
3
-----------
1
2
arg3
Run Code Online (Sandbox Code Playgroud)
因此,当使用 2 个参数调用这两个方法时,将testMethod
第二个参数替换为默认参数,而testMethod1
默认参数将替换第三个参数。
归档时间: |
|
查看次数: |
9971 次 |
最近记录: |