有没有办法将散列平铺成字符串,在键和值之间以及键/值对之间使用可选的分隔符?
例如,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'
谢谢