假设我有一个散列{ "a" => "b", "c" => "d" },我想把它转换成字符串"a=b\nc=d"。
到目前为止,我想出的解决方案是
{ "a" => "b", "c" => "d" }.map { |k, v| k + "=" + v }.join("\n")
有没有更好/更优雅的方法?例如,是否可以使用单个方法调用来完成此任务?
发布于 2010-09-02 06:04:48
到目前为止,所有提出的解决方案在我看来都很好。这是一个“无链的”:
{ "a" => "b", "c" => "d" }.inject(""){ |str, kv| str << "%s=%s\n" % kv }发布于 2010-09-02 05:48:16
任何建议的解决方案都会起作用。请记住,在ruby1.9.1之前的版本中,哈希是无序的。如果您需要保持元素的顺序,请记住首先对其进行排序。
{ "a" => "b", "c" => "d" }.sort.map{|k, v| "#{k}=#{v}" }.join("\n")发布于 2010-09-02 05:19:41
好不到哪里去,但我认为这是可行的:
{ "a" => "b", "c" => "d" }.map { |a| a.join '=' }.join("\n")https://stackoverflow.com/questions/3622159
复制相似问题