无法从to_s获得正确的输出



Peter Cooper 的 Beginning Ruby 中的多态性示例之一涉及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}

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

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

编辑:参见Ruby 1.9 Array.to_s行为不同?

相关内容

最新更新