मैं एक बंद करना चाहता हूं जो एक तर्क लेता है (जिसे मैं it
के साथ संदर्भित करता हूं) कभी-कभी मैं बंद करने के लिए एक और अतिरिक्त तर्क पारित करना चाहता हूं। मैं यह कैसे कर सकता हूं?वैकल्पिक तर्कों के साथ ग्रोवी क्लोजर
19
A
उत्तर
32
आप (जैसे अशक्त के रूप में) एक डिफ़ॉल्ट मान पर दूसरा तर्क सेट कर सकते हैं:
def cl = { a, b=null ->
if(b != null) {
print "Passed $b then "
}
println "Called with $a"
}
cl('Tim') // prints 'Called with Tim'
cl('Tim', 'Yates') // prints 'Passed Yates then Called with Tim
एक अन्य विकल्प तो जैसे एक vararg सूची b
बनाने के लिए होगा:
def cl = { a, ...b ->
if(b) {
print "Passed $b then "
}
println "Called with $a"
}
cl('Tim') // prints 'Called with Tim'
cl('Tim', 'Yates') // prints 'Passed [Yates] then Called with Tim
cl('Tim', 'Yates', 'Groovy') // prints 'Passed [Yates, Groovy] then Called with Tim
1
उम्मीद है कि इस
def clr = {...a ->
print "Passed $a then "
enter code here
}
clr('Sagar')
clr('Sagar','Rahul')
जो आसान था;) thanx – Moonlit
@ user1291235 कोई समस्या नहीं :-) एक और संभावित समाधान जोड़ा गया –
और यदि आप बंद शरीर को बदलना नहीं चाहते हैं, तो आप पहले तर्क 'it' नाम कर सकते हैं :-) – Ayman