【发布时间】:2011-03-04 02:02:24
【问题描述】:
有没有办法将散列扁平化为字符串,在键和值之间以及键/值对之间使用可选的分隔符?
例如,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'
谢谢
【问题讨论】: