簡體   English   中英

如何在groovy中設置字符串變量的默認值

[英]how to set default value for string variable in groovy

我在groovy中定義了以下函數

def deploy_app(Map InputParameters, List OptionalParameters = []) {
    String InputParametersString = InputParameters.inject([]) { acc, val -> acc + "--set ${val.getKey()}=${val.getValue()}" }.join(" ")
    .
    .
    .
}

我想要做的是能夠使映射InputParameters參數具有默認值為空映射,並且如果InputParameters參數未傳遞或為空,則字符串InputParametersString的默認值為空字符串。

這是我嘗試使用elvis運算符但沒有工作

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(" ") ?: ""
    .
    .
    .
}

那么我該如何做到這一點,以便在沒有傳遞InputParameters時,我能夠將字符串InputParametersString作為空字符串值?

謝謝

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評估為正確地清空字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM