如果我把一个
ruby哈希转换成一个名字 – 值对的字符串(例如在HTTP参数中使用),这是最好的
方法吗?
# Define the hash
fields = {"a" => "foo","b" => "bar"}
# Turn it into the name-value string
http_params = fields.map{|k,v| "#{k}=#{v}"}.join('&')
我想我的问题是:
有更简单的方法来到http_params吗?认为,上述方式是有效的,并且是相当简单的,但是如果有没有办法从哈希到字符串而不首先创建数组(地图方法的结果),那么我很好奇?
这可能是你能做的最好的.您可以遍历哈希中的对,随时构建字符串.但是在这种情况下,需要在每个步骤中创建和
删除中间字符串.
你有一个用例,这是一个性能瓶颈?一般来说,Ruby在幕后做了很多工作,担心这样的临时数组可能不值得.如果您担心这可能是一个问题,请考虑对代码进行速度和内存使用情况分析,通常结果不是您期望的.