我在groovy中定义了以下功能
def deploy_app(Map InputParameters, List OptionalParameters = []) {
String InputParametersString = InputParameters.inject([]) { acc, val -> acc + "--set ${val.getKey()}=${val.getValue()}" }.join(" ")
.
.
.
}
我想做的是能够使map InputParameters
参数具有默认值为空map,并且如果{{1 }}参数未传递或为空。
这是我尝试使用 elvis运算符但不起作用
InputParametersString
也尝试过
InputParameters
那我该怎么做,以便在没有传递def deploy_app(Map InputParameters = [:], List OptionalParameters = []) {
String InputParametersString = "" ?: InputParameters.inject([]) { acc, val -> acc + "--set ${val.getKey()}=${val.getValue()}" }.join(" ")
.
.
.
}
的情况下,我能够将字符串def deploy_app(Map InputParameters = [:], List OptionalParameters = []) {
String InputParametersString = InputParameters.inject([]) { acc, val -> acc + "--set ${val.getKey()}=${val.getValue()}" }.join(" ") ?: ""
.
.
.
}
作为空字符串值?
谢谢
答案 0 :(得分:0)
def deploy_app(Map InputParameters=[:], List OptionalParameters = []) {
String InputParametersString = InputParameters.inject([]) { acc, val -> acc + "--set ${val.getKey()}=${val.getValue()}" }.join(" ")
}
def r = deploy_app()
assert r instanceof String
assert r.length()==0
如果输入映射为空,InputParametersString
正确评估为空字符串