这很奇怪,但我不知道配置什么或配置位置。我正在尝试打印一个简单的哈希值,如下所示:
#!/usr/bin/ruby
names = Hash.new
names[1] = "Jane"
names[2] = "Thomas"
puts names
我希望输出为
{1=>"Jane", 2=>"Thomas"}
我得到了
1Jane2Thomas
有什么想法吗?
答案 0 :(得分:4)
你应该使用inspect。
puts names.inspect
#=> {1=>"Jane", 2=>"Thomas"}
答案 1 :(得分:3)
将方法调用 to_s 放在其参数上并打印结果。然而, p 方法在其参数上调用 inspect 并打印结果:
{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"}