这很奇怪,但我不知道要配置什么或在哪里配置。我正在尝试打印一个简单的哈希值,如下所示:
#!/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方法在其参数上调用检查并打印结果:
{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"}