2013-09-24 11 views
13

मैं कुंजी प्रिंट करने की कोशिश कर रहा हूं: मान वर्तमान में जब मैं अपने कोड चलाने की कोशिश करता हूं तो मुझे त्रुटियां मिलती रहती हैं।रूबी प्रिंट हैश कुंजी और मान

कोड:

output.each do |key, value| 
    puts key + ' : ' + value 
end 

मैं एक ही लाइन पर यह करने के लिए एक तरह से समझ नहीं कर सकते हैं। मैंने विभिन्न कार्यान्वयन की कोशिश की है, जैसे < < प्रतीक का उपयोग करना। मैंने प्रिंट के साथ कई सारे कथन कथन का उपयोग करके, और दोनों मानों को एक स्ट्रिंग और प्रिंटिंग में जोड़कर भी खेला है।

+2

आपको क्या त्रुटियां मिलती हैं? – sawa

+0

मैंने आपके द्वारा प्रदान की गई छोटी जानकारी के आधार पर एक धारणा की है, लेकिन अगर आपने 'output.inspect' –

+0

का उपयोग करके हैश की सटीक त्रुटि और सामग्री दी है तो यह मदद करेगा यदि आप इसका मतलब समझते हैं कि" मैं कोई रास्ता नहीं समझ सकता इसे एक ही पंक्ति पर करें। " क्या आप एकाधिक कुंजी आउटपुट करने की कोशिश कर रहे हैं: एक पंक्ति पर मूल्य जोड़े? क्या आप उस आउटपुट का उदाहरण प्रदान कर सकते हैं जिसे आप प्राप्त करने का प्रयास कर रहे हैं? स्ट्रिंग इंटरपोलेशन के लिए – cduhn

उत्तर

21

आपके Hash की सामग्री के आधार पर, आपको key को स्ट्रिंग में कनवर्ट करने की आवश्यकता हो सकती है क्योंकि यह एक प्रतीक हो सकता है।

puts key.to_s + ' : ' + value 

या, मैं क्या कर रहा सुझाव है, उपयोग स्ट्रिंग प्रक्षेप:

puts "#{key}:#{value}" 

कारण आप, एक त्रुटि हो रही है अगर key वास्तव में एक स्ट्रिंग नहीं है, क्योंकि यह कॉल करने के लिए कोशिश कर रहा है विधि + जो भी key पर है। अगर इसमें + विधि नहीं है, तो आपको एक त्रुटि मिलेगी।

+3

+1 – engineersmnky

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