首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Ruby中的哈希值构造字符串

使用Ruby中的哈希值构造字符串
EN

Stack Overflow用户
提问于 2010-09-02 05:06:34
回答 4查看 128关注 0票数 2

假设我有一个散列{ "a" => "b", "c" => "d" },我想把它转换成字符串"a=b\nc=d"

到目前为止,我想出的解决方案是

{ "a" => "b", "c" => "d" }.map { |k, v| k + "=" + v }.join("\n")

有没有更好/更优雅的方法?例如,是否可以使用单个方法调用来完成此任务?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-02 06:04:48

到目前为止,所有提出的解决方案在我看来都很好。这是一个“无链的”:

代码语言:javascript
运行
复制
{ "a" => "b", "c" => "d" }.inject(""){ |str, kv| str << "%s=%s\n" % kv }
票数 2
EN

Stack Overflow用户

发布于 2010-09-02 05:48:16

任何建议的解决方案都会起作用。请记住,在ruby1.9.1之前的版本中,哈希是无序的。如果您需要保持元素的顺序,请记住首先对其进行排序。

代码语言:javascript
运行
复制
{ "a" => "b", "c" => "d" }.sort.map{|k, v| "#{k}=#{v}" }.join("\n")
票数 5
EN

Stack Overflow用户

发布于 2010-09-02 05:19:41

好不到哪里去,但我认为这是可行的:

代码语言:javascript
运行
复制
{ "a" => "b", "c" => "d" }.map { |a| a.join '=' }.join("\n")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3622159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档