मैं एक ऐसा फ़ंक्शन बनाने की कोशिश कर रहा हूं जो डिफ़ॉल्ट को ओवरराइड करने के लिए पैरामीटर स्वीकार करता है लेकिन मुझे "शून्य" मिल रहा है।

मैंने एक साधारण कार्य लिखा है:

// vars/Run.groovy
def test(String type, String parallel = 'yes') {
    println(type)
    println(parallel)
}

मेरी पाइपलाइन इस तरह दिखती है:

node('master') {
    Run.test('unit')
    Run.test('unit', parallel = 'no')
}

मुझे जो परिणाम मिलता है वह है:

unit
yes

unit
null

मुझे किसकी याद आ रही है?

5
user1559263 23 जून 2017, 16:57

1 उत्तर

सबसे बढ़िया उत्तर

आपको बस मूल्य पारित करना है। यह आपके डिफ़ॉल्ट मान को ओवरराइड कर देगा।

Run.test('unit', 'no')
5
Fidel 23 जून 2017, 17:09
4
लेकिन अगर आपके पास कई वैकल्पिक तर्क हैं तो आप क्या करते हैं? उदाहरण: def परीक्षण (स्ट्रिंग प्रकार, स्ट्रिंग फू = 'बार', स्ट्रिंग समानांतर = 'हां') और मैं केवल 'समानांतर' को ओवरराइड करना चाहता हूं?
 – 
user1559263
24 जून 2017, 20:15
मैंने एक पूर्ण उदाहरण में वैकल्पिक और अनिवार्य तर्कों के साथ एक उत्तर पोस्ट किया है। आशा है ये मदद करेगा। stackoverflow.com/a/54181094/3002336
 – 
Anand Varkey Philips
14 जिंदा 2019, 14:59
वह पूरा उदाहरण मदद नहीं करता है। यह बहुत जटिल है, कोई स्पष्टीकरण नहीं है, और यह प्रश्न का उत्तर नहीं देता है।
 – 
bgdnlp
10 सितंबर 2021, 08:08