Ruby 注入不';不行?
为什么这行代码不起作用Ruby 注入不';不行?,ruby,Ruby,为什么这行代码不起作用 ['fdfsd','gfdhgf'].inject(Hash.new){|sum,e| sum[e] = e} 使用ruby-1.9.2-p180,得到索引器:字符串不匹配 解决了的 具有相同效果的不同方法: a = ['fdfsd','gfdhgf'] Hash[a.zip(a)] 具有相同效果的不同方法: a = ['fdfsd','gfdhgf'] Hash[a.zip(a)] 在1.9中还有每个带有对象的\u: >> ['fdfsd','gfd
['fdfsd','gfdhgf'].inject(Hash.new){|sum,e| sum[e] = e}
使用ruby-1.9.2-p180,得到索引器:字符串不匹配
解决了的
具有相同效果的不同方法:
a = ['fdfsd','gfdhgf']
Hash[a.zip(a)]
具有相同效果的不同方法:
a = ['fdfsd','gfdhgf']
Hash[a.zip(a)]
在1.9中还有
每个带有对象的\u
:
>> ['fdfsd','gfdhgf'].each_with_object(Hash.new){|e,sum| sum[e] = e}
=> {"fdfsd"=>"fdfsd", "gfdhgf"=>"gfdhgf"}
请注意,与
inject
相比,块参数是相反的,您不必显式返回累加器。在这个特定的例子中,顺便说一句,我会使用J-L的答案。在1.9中,还有每个带有对象的\u
:
>> ['fdfsd','gfdhgf'].each_with_object(Hash.new){|e,sum| sum[e] = e}
=> {"fdfsd"=>"fdfsd", "gfdhgf"=>"gfdhgf"}
请注意,与
inject
相比,块参数是相反的,您不必显式返回累加器。在这种情况下,顺便说一下,我同意J--L的答案。请将您的解决方案转换为自己的答案,谢谢。请将您的解决方案转换为自己的答案,谢谢。