ruby - 没有从 to_s 获得正确的输出

标签 ruby arrays hash tostring ruby-1.9

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 有变化吗,还是我做错了什么?或者没有足够的信息来告诉?我怎样才能找到它?

最佳答案

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

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

关于ruby - 没有从 to_s 获得正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13462794/

相关文章:

arrays - 传递 slice 而不是指针

ruby-on-rails - 当以不同的方式编写时,范围解析在 ruby​​ 中的工作方式不同

ruby-on-rails - 是否有专门针对 rails 5.2.3 的 Rubocop 配置?

javascript - 修改数组对象中的键字符串

Java 和数组 - 按升序插入排序

swift - Swift 中的可哈希枚举

security - 如何在我的登录密码中添加盐?

sql - 我误解了 Ruby 中的 String#hash 吗?

ruby 堆排序 : `sink' : undefined method `>' for nil:NilClass

ruby-on-rails - 在ruby的环境变量中添加urls api key