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方法在其参数上调用检查并打印结果:

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

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

因此,要获得漂亮的 Hash 打印输出,请使用

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

或者

p {1=>"Jane", 2=>"Thomas"}
于 2012-08-08T14:09:54.877 回答