我在Ruby中有两个这样的哈希值
hash1={"a" = > "b"}
hash2={:a => "c" }
当我在做hash1.merge!(hash2)我得到的结果是>>
{"a"=>"b", :a=>"c"}
我想得到结果为
{"a" => "c"}
,基本上我希望ruby将符号和字符串作为键值对待。
我当时正在研究Hash类,找不到任何方法。
问题是如何合并以使上述操作的结果为{“ a” =>“ c”}。
我在Ruby中有两个哈希,例如hash1 = {“ a” =>“ b”} hash2 = {:a =>“ c”}当我执行hash1.merge!(hash2)时,得到的结果为{“ a” =>“ b”,:a =>“ c”}我想得到...
Rails的ActiveSupport gem具有完成任务的stringify_keys
(请参阅:http://apidock.com/rails/Hash/stringify_keys)方法:
您可以将哈希键规范化为相同的类型(即hash.transform_keys(&:to_s)
或to_s
)并合并:
鉴于您想要修改h = -> (h) { Hash[h.map{ |k,v| [k.to_s, v] }] }
(而不是创建新的哈希),您可以这样做: