我没有使用 ruby 1.8.7,最近我很惊讶:
{:k => 30}.to_s #=> "k30"
是否准备好使用修复将哈希转换为 ruby 1.8.7 的字符串,使其看起来像:
{:k => 30}.to_s #=> "{:k=>30}"
我没有使用 ruby 1.8.7,最近我很惊讶:
{:k => 30}.to_s #=> "k30"
是否准备好使用修复将哈希转换为 ruby 1.8.7 的字符串,使其看起来像:
{:k => 30}.to_s #=> "{:k=>30}"
hash.to_s
确实已从 更改1.8.7
为1.9.3
。
在1.8.7
,(参考:http ://ruby-doc.org/core-1.8.7/Hash.html#method-i-to_s ):
通过将哈希转换为 [ key, value ] 对数组,然后使用 Array#join 和默认分隔符将该数组转换为字符串,将 hsh 转换为字符串。
在1.9.3
,(参考:http ://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-to_s )
别名:检查
您可以在 1.8.7 中对 Hash 类进行猴子修补,以在本地执行以下操作:
class Hash
alias :to_s :inspect
end
猴子补丁之前:
1.8.7 :001 > {:k => 30}.to_s
=> "k30"
1.8.7 :002 > {:k => 30}.inspect
=> "{:k=>30}"
猴子修补及之后:
1.8.7 :003 > class Hash; alias :to_s :inspect; end
=> nil
1.8.7 :004 > {:k => 30}.to_s
=> "{:k=>30}"