如何在Groovy中设置字符串变量的默认值

时间:2019-05-12 17:30:06

标签: groovy jenkins-groovy

我在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(" ") ?: "" . . . } 作为空字符串值?

谢谢

1 个答案:

答案 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正确评估为空字符串