かなり奇妙ですが、何をどこで設定すればよいかわかりません。以下のように単純なハッシュ値を出力しようとしています:
#!/usr/bin/ruby
names = Hash.new
names[1] = "Jane"
names[2] = "Thomas"
puts names
出力が
{1=>"Jane", 2=>"Thomas"}
私が得る間
1Jane2Thomas
何か案は?
かなり奇妙ですが、何をどこで設定すればよいかわかりません。以下のように単純なハッシュ値を出力しようとしています:
#!/usr/bin/ruby
names = Hash.new
names[1] = "Jane"
names[2] = "Thomas"
puts names
出力が
{1=>"Jane", 2=>"Thomas"}
私が得る間
1Jane2Thomas
何か案は?
インスペクトを使用する必要があります。
puts names.inspect
#=> {1=>"Jane", 2=>"Thomas"}
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"}