没有从to_s获得正确的输出

时间:2012-11-19 21:43:49

标签: ruby arrays hash tostring ruby-1.9

Peter Cooper的Beginning Ruby for polymorphism中的一个例子涉及to_s方法。他给出了这个例子:

puts 1000.to_s
puts [1, 2, 3].to_s
puts ({ :name => 'Fred', :age => 10 }).to_s

并将其显示为输出:

1000
123
age10nameFred

但我得到的输出是:

1000
[1, 2, 3]
{:name=>"Fred", :age=>10}

有谁知道为什么会这样?红宝石有变化,还是我做错了什么?还是没有足够的信息来说明?我怎么能找到它?

1 个答案:

答案 0 :(得分:3)

这些示例使用ruby 1.8.7,这有点过时了。 Ruby 1.9.3(当前版本)更改了数组和哈希的to_s实现。

编辑:见Ruby 1.9 Array.to_s behaves differently?