2011-05-24 11 views
41

अन्यथा, यहरूबी में, हैश.एच_with_index do | [k, v], i | जैसे कुछ का उपयोग करने का कोई तरीका है?

h = {:a => 1, :b => 2.2} 
h.each_with_index do |pair, i| 
    k = pair[0]; v = pair[1] 
    p k, v, i 
end 

और k और v इस तरह से स्थापित करने के लिए थोड़ा अनाड़ी लगता है की जरूरत है। क्या यह आसान हो सकता है या

h.each_with_index do |[k,v], i| 

जैसे कुछ आसान हो सकता है?

+3

बस एक ध्यान दें: आप 'कश्मीर कर सकते हैं, वी = * pair' कहीं भी तुम क्या आप' कश्मीर में है की तरह कुछ करने की ज़रूरत = जोड़ी [0]; वी = जोड़ी [1] '। – coreyward

+1

यहां तक ​​कि 'के, वी = जोड़ी' काम करता है। यहां '' 'की आवश्यकता नहीं है। – molf

उत्तर

94

वास्तव में, हाँ! उपयोग कोष्ठकों:

h = {:a => 1, :b => 2.2} 
h.each_with_index do |(k, v), i| 
    p k, v, i 
end 
+2

अच्छा! रुबी 1.8.6 में भी काम करता है –

+1

रोज़ाना कुछ नया सीखें! धन्यवाद! – bheeshmar

1

इंजेक्शन कॉल आपको जो चाहिए, उसे प्राप्त करना चाहिए, http://www.ruby-doc.org/core/classes/Enumerable.src/M001494.html जांचें और इंजेक्ट भाग पर स्क्रॉल करें, एक आकर्षण की तरह काम करना चाहिए!

+0

क्या आपके पास एक छोटा सा उदाहरण है जो दिखा सकता है कि यह कैसे काम करता है? –

+0

myArray.inject {| kvPair, बीज | //कार्य करना! } –

संबंधित मुद्दे

 संबंधित मुद्दे