有没有一种方法可以将哈希平化为字符串,在键和值之间使用可选的分隔符以及键/值对?将哈希平铺到Ruby中的字符串
例如,print {:a => :b, :c => :d}.flatten('=','&')
应打印a=b&c=d
我写一些代码来做到这一点,但我想知道如果有一个更合适的方法:
class Hash
def flatten(keyvaldelimiter, entrydelimiter)
string = ""
self.each do
|key, value|
key = "#{entrydelimiter}#{key}" if string != "" #nasty hack
string += "#{key}#{keyvaldelimiter}#{value}"
end
return string
end
end
print {:a => :b, :c => :d}.flatten('=','&') #=> 'c=d&a=b'
感谢
您可以进一步简化此操作。详情请参阅我的回答。要点是用'| e |'代替'| k,v |',这使'e'成为一个可以调用'e.join('=')'的数组。 – 2010-06-15 18:33:06
如何做相反得到散列 – jenuine 2016-02-19 06:12:58