Hash#to_s (inspect 的别名)始终以 1.8 哈希样式输出数据:
{key: "value"}.to_s
=> "{:key=>\"value\"}"
是否有任何核心方法将其序列化为 1.9 哈希样式?
{key: "value"}.to_s
=> "{key: \"value\"}"
我在已知数据上使用它进行代码重构;由于 Ruby 倾向于实现所有内容,我希望我只是找错了地方。
当然,你可以用丑陋的方式破解它
"{" + my_hash.to_a.map{|pair| pair[0].to_s + ": " + pair[1].inspect} * ",\n") + "}"
但我希望有一个经过单元测试且完全正确的核心方法。
最佳答案
这对我有用......并且它尊重字符串键。
{key: "value"}.to_s.gsub(/(:(\w+)\s?=>\s?)/, "\\2: ")
关于ruby - 是否有与 'new' 哈希语法等效的 Ruby Hash#to_s?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21582464/