2012-03-01 9 views
30

ग्रोवी में चीजों को करने के सभी शॉर्टेंड तरीकों के साथ, पुनरावृत्ति सूचकांक तक पहुंचने के दौरान सूची को फिर से शुरू करने का एक आसान तरीका होना चाहिए।ग्रोवी, सूचकांक

for(i in 0 .. list.size()-1) { 
    println list.get(i) 
} 

वहाँ एक बुनियादी for पाश में कोई अंतर्निहित सूचकांक है?

for(item in list){ 
    println item  
    println index 
} 

उत्तर

81

आप eachWithIndex उपयोग कर सकते हैं:

list.eachWithIndex { item, index -> 
    println item 
    println index 
} 

ग्रूवी 2.4 और नए के साथ, आप भी indexed() विधि का उपयोग कर सकते हैं। यह collect तरह के तरीकों के साथ सूचकांक का उपयोग करने की सुविधाजनक हो सकता है:

def result = list.indexed().collect { index, item -> 
    "$index: $item" 
} 
println result 
+0

महान जवाब शुरू करना चाहते हैं, जहां मैं 'eachWithIndex' तरह बंद होने के बारे में पता कर सकते हैं और वे तर्क के प्रकार क्या लेते हैं? – raffian

+1

मैं यहां शुरू करूंगा: http://groovy.codehaus.org/GDK+Extensions+to+Object और http://groovy.codehaus.org/JN1015- चयन – ataylor

+5

इसके अलावा http://groovy.codehaus.org/ groovy-jdk/एक महान संदर्भ है। – doelleri

1

इस प्रयास करें यदि आप सूचकांक 1.

[ 'rohit', 'ravi', 'roshan' ].eachWithIndex { name, index, indexPlusOne = index + 1 -> 
    println "Name $name has position $indexPlusOne" 
}