Groovy 如何使用闭包的默认值执行命名参数
所以基本上我想这样做:Groovy 如何使用闭包的默认值执行命名参数,groovy,Groovy,所以基本上我想这样做: execute = { String param1, String param2 = 'default' -> echo "${param1}" echo "${param2}" } execute( param1: 'Test1', param2: '123' ) execute('Test2') 但这不起作用,因为它将所有给定参数放在param1中。这将是可能的地图,但我想保留默认参数的
execute = { String param1, String param2 = 'default' ->
echo "${param1}"
echo "${param2}"
}
execute(
param1: 'Test1',
param2: '123'
)
execute('Test2')
但这不起作用,因为它将所有给定参数放在param1
中。这将是可能的地图,但我想保留默认参数的功能
有什么方法可以做到这一点吗?Groovy没有命名参数。您只能允许一张地图并使其生效 看,会的。因此,你必须考虑到地图和处理 退后。例如,将传入映射与一些默认映射合并 或者在需要的地方选择默认值。例如
def c = { Map args=[:] ->
def param1 = args.param1 ?: 'fallback'
println param1
}
c()
// ⇒ fallback
c(param1: "set")
// ⇒ set
另外,我是groovy新手,所以可能已经有人问过我这个问题了——如果是这样的话,我希望有一个指向正确方向的指针:)谢谢你的帮助!不幸的是它不存在,但至少我现在知道了!Groovy没有?@jaco0646是的,Groovy没有命名参数。如果您想了解这在其他语言中是如何工作的,请查看例如Kotlin。文档错误-这是传递地图。