ग्रूवी में, क्या, बीच का अंतर हैग्रोवी में 1..5, [* 1..5] और [1..5] के बीच क्या अंतर है?
def a=1..5
def b= [*1..5]
def c=[1..5]
क्या [*1..5]
में *
का प्रतीक है?
ग्रूवी में, क्या, बीच का अंतर हैग्रोवी में 1..5, [* 1..5] और [1..5] के बीच क्या अंतर है?
def a=1..5
def b= [*1..5]
def c=[1..5]
क्या [*1..5]
में *
का प्रतीक है?
*
Spread Operator का प्रतिनिधित्व करता है।
a = 1..5
b = [*1..5]
c = [1..5]
assert a.class.name == "groovy.lang.IntRange" //Is a range from 1 till 5
assert b.class.name == "java.util.ArrayList" //Spread the range in a list
assert c.class.name == "java.util.ArrayList" //Is a list
विस्तार @ ataylor के विवरण: अपने उदाहरण विस्तार से चर्चा करते
assert a.size() == 5
assert b.size() == 5
assert c.size() == 1
c
में प्रत्येक तत्व तक पहुंचने के लिए आप इसे ऊपर पुनरावृति करने के लिए (जो एक सीमा है)
c.each{println it}
Groovy Goodness से है श्री हाकी के उपयोग का एक विस्तृत उदाहरण है।
यहाँ *
(प्रसार ऑपरेटर) रेंज 1..5
फैलता है और इसलिए आपको लगता है कि सीमा [1, 2, 3, 4, 5]
में पूर्णांकों की एक सूची प्राप्त जब आप किसी सूची में एक श्रेणी वस्तु डाल, तो आप प्रकार IntRange
में से एक तत्व के साथ एक सूची प्राप्त :
assert [1..5].size() == 1
प्रसार ऑपरेटर यह रेंज का विस्तार लागू करने और आप पांच तत्वों के साथ एक सूची प्राप्त करके, वास्तविक पूर्णांक रेंज का प्रतिनिधित्व करता है:
assert [*1..5].size() == 5
आपको गिस्ट रखी गई है। धन्यवाद!! :) – dmahapatro
साफ़ और सटीक! धन्यवाद – Chinmay
क्या अब उचित उत्तर स्वीकार करना संभव होगा? – dmahapatro