7
我没有用Ruby 1.8.7工作,最近我感到惊讶的是:的Ruby 1.8.7转换哈希串
{:k => 30}.to_s #=> "k30"
有没有准备好使用修复程序哈希转换为字符串红宝石1.8。 7,以使它看起来像:
{:k => 30}.to_s #=> "{:k=>30}"
我没有用Ruby 1.8.7工作,最近我感到惊讶的是:的Ruby 1.8.7转换哈希串
{:k => 30}.to_s #=> "k30"
有没有准备好使用修复程序哈希转换为字符串红宝石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):
由散列变换为[键,值]对的阵列,然后使用阵列#加入该数组转换为字符串转换HSH为字符串与默认分隔符。
在1.9.3
(参考文献:http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-to_s)
别名:检查
你可以在1.8.7猴子补丁哈希类具有以下做本地一样的:
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}"