有沒有一種方法可以將哈希平化爲字符串,在鍵和值之間使用可選的分隔符以及鍵/值對?將哈希平鋪到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