2012-08-08 16 views
5

यह बहुत डरावना है, लेकिन मुझे नहीं पता कि कॉन्फ़िगर करना है या कहां कॉन्फ़िगर करना है।मेरे हैंश स्ट्रिंग के रूप में मुद्रित क्यों हैं?

#!/usr/bin/ruby 

names = Hash.new 
names[1] = "Jane" 
names[2] = "Thomas" 

puts names 

मैं जब मैं

1Jane2Thomas 

किसी भी विचार प्राप्त उत्पादन

{1=>"Jane", 2=>"Thomas"} 

होने की उम्मीद: मैं नीचे के रूप में एक सरल हैश मान मुद्रित करने के लिए कोशिश कर रहा हूँ?

+2

लगता है कि आप रूबी 1.8 का उपयोग कर रहे हैं। रुबी 1.9 में * आप * आउटपुट प्राप्त करते हैं जो आप उम्मीद करते हैं। ओल्डर्जोड का जवाब आपकी समस्या को 1.8 में हल करता है। – Mischa

+0

वोला, रूबी का मेरा संस्करण 1.8.7 है। हाँ, वास्तव में जवाब ठीक काम करता है। – PCoder

उत्तर

4

आपको निरीक्षण का उपयोग करना चाहिए।

puts names.inspect 
#=> {1=>"Jane", 2=>"Thomas"} 
+1

या बस 'पी नाम' – tokland

3

विधि to_s अपने तर्क (ओं) पर कॉल करता है और परिणाम प्रिंट डालता है। पी विधि हालांकि कॉल अपने तर्क (ओं) पर निरीक्षण और परिणाम प्रिंट:

{1=>"Jane", 2=>"Thomas"}.to_s 
#=> '1Jane2Thomas' 

{1=>"Jane", 2=>"Thomas"}.inspect 
#=> '{1=>"Jane", 2=>"Thomas"}' 

तो, एक अच्छा हैश प्रिंटआउट है, या तो

puts {1=>"Jane", 2=>"Thomas"}.inspect 

या

उपयोग करने के लिए
p {1=>"Jane", 2=>"Thomas"} 
संबंधित मुद्दे