2012-08-08 5 views
5

かなり怪しいですが、私は何を設定するのか、どこで設定するのか分かりません。私は私のハッシュが文字列として印刷されるのはなぜですか?

1Jane2Thomas 

任意のアイデアを取得しながら、出力は

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

ことを期待し

#!/usr/bin/ruby 

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

puts names 

:私は以下のような単純なハッシュ値を印刷しようとしていますか?

+2

あなたはRuby 1.8を使用しているようです。 Ruby 1.9では、あなたが期待する結果を得ることができます。 Oldergodの答えは1.8であなたの問題を解決します。 – Mischa

+0

Voila、私のルビーバージョンは1.8.7です。はい、確かに答えはうまくいきます。 – PCoder

答えて

4

inspectを使用する必要があります。

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

または単に 'p names' – 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方法は、しかし は、その引数(複数可)にを検査し、結果を出力呼び出し、
p {1=>"Jane", 2=>"Thomas"} 
関連する問題