Ruby 将散列转换为字符串的最短方法
有这样一个散列:Ruby 将散列转换为字符串的最短方法,ruby,Ruby,有这样一个散列: params = { k1: :v1, k2: :v2, etc: :etc } k1="v1", k2="v2", etc="etc" 我需要将其转换为如下字符串: params = { k1: :v1, k2: :v2, etc: :etc } k1="v1", k2="v2", etc="etc" 我有一个工作版本: str = "" params.each_pair { |k,v| str << "#{k}=\"#{v}\", " } str=“”
params = { k1: :v1, k2: :v2, etc: :etc }
k1="v1", k2="v2", etc="etc"
我需要将其转换为如下字符串:
params = { k1: :v1, k2: :v2, etc: :etc }
k1="v1", k2="v2", etc="etc"
我有一个工作版本:
str = ""
params.each_pair { |k,v| str << "#{k}=\"#{v}\", " }
str=“”
params.each|u pair{k,v|str尝试以下方法:
str = params.map {|p| '%s="%s"' % p }.join(', ')
在行动中看到它试试这个
hash.collect { |k,v| "#{k} = #{v}" }.join(" ,")
每个对象都必须使用ruby.yep中的方法,我知道,但是输出与我需要的非常不同,更好,但我需要双引号中的值…hash.collect{k,v}“{k}='{v}'}。join(“,”)。当我们试图更改双引号和单引号的顺序时,编译器会抛出反斜杠…hash.collect{k,v}'''.{k}v}.join(“,”)…这也是一个选项,但o/p是“k1=\“v1\”,k2=“v2\”,etc=“etc\”“太好了,它是如何工作的?我觉得我的头脑被漫长的PHP岁月严重扭曲了…”(Djkastra是对的——有些语言确实严重损害了人类的健康。)minds@oldergod,对不起?您只需在代码中调用params.map
,它应该work@JamesEvans,你在问它是如何工作的?很简单。map块接收一个key/val数组作为第一个参数,然后我们将它馈送到%
,这是我所做的printf
的简写我不知道这是printf的缩写,这正是我想要的。谢谢,回答得很好。