這非常奇怪,但我不知道要配置什麼或在哪裏配置。我想打印如下一個簡單的哈希值:爲什麼我的哈希按字符串打印?
#!/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
任何想法?
的提出方法調用to_s上它的參數(一個或多個)並輸出結果。然而,p方法調用在它的參數(一個或多個)檢查並輸出結果:
{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"}
似乎你正在使用Ruby 1.8。在Ruby 1.9中,你可以獲得你期望的輸出。 Oldergod的答案在1.8中解決了你的問題。 – Mischa 2012-08-08 09:27:42
瞧,我的紅寶石版本是1.8.7。是的,的確,答案正常。 – PCoder 2012-08-08 09:33:45