5

かなり奇妙ですが、何をどこで設定すればよいかわかりません。以下のように単純なハッシュ値を出力しようとしています:

#!/usr/bin/ruby

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

puts names

出力が

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

私が得る間

1Jane2Thomas

何か案は?

4

2 に答える 2

4

インスペクトを使用する必要があります。

puts names.inspect
#=> {1=>"Jane", 2=>"Thomas"}
于 2012-08-08T09:24:23.183 に答える
3

putsメソッドは、その引数に対して to_s を呼び出し、結果を出力しますただし、pメソッドは引数に対してinspectを呼び出し、結果を出力します。

{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"}
于 2012-08-08T14:09:54.877 に答える