में एक सरणी के भीतर वस्तुओं के गुणों योग करने के लिए कैसे मैं समझता हूँ कि आदेश, रूबी एक में सरणी तत्वों योग करने के लिए सुई विधि का उपयोग कर सकते हैं यानीरूबी
array = [1,2,3,4,5];
puts array.inject(0, &:+)
लेकिन मैं कैसे वस्तुओं के गुणों का योग है एक ऑब्जेक्ट सरणी के भीतर उदाहरण के लिए?
वस्तुओं की एक सरणी है और प्रत्येक ऑब्जेक्ट में संपत्ति "नकद" है। इसलिए मैं अपने नकदी शेष को कुल मिलाकर जोड़ना चाहता हूं। कुछ की तरह ...
array.cash.inject(0, &:+) # (but this doesn't work)
मुझे पता है मैं शायद ही संपत्ति नकदी से बना एक नई सरणी बनाने के लिए और इस योग सकता है, लेकिन मैं यदि संभव हो तो एक क्लीनर विधि के लिए देख रहा हूँ!
परफेक्ट धन्यवाद इंजेक्षन देख सकते हैं! –
यह दो बार 'सरणी' पर चला जाता है, हालांकि बहुत सारे तत्व होने पर सलाह नहीं दी जा सकती है।क्यों न केवल इंजेक्शन के लिए उचित ब्लॉक का उपयोग करें? इसके अलावा 'कम/इंजेक्ट' सीधे प्रतीक तर्क लेता है, 'प्रतीक # to_proc' की आवश्यकता नहीं :-) –
ध्यान दें कि आपको ब्लॉक भेजने की आवश्यकता नहीं है,' इंजेक्ट 'जानता है कि प्रतीक के साथ क्या करना है: 'इंजेक्ट करें (0,: +) ' – tokland