0
你知道爲什麼這行代碼不起作用嗎?注入不起作用?
['fdfsd','gfdhgf'].inject(Hash.new){|sum,e| sum[e] = e}
使用Ruby-1.9.2-P180,得到IndexError: string not matched
== ==解決
['fdfsd','gfdhgf'].inject(Hash.new){|sum,e| sum[e] = e; sum}
你知道爲什麼這行代碼不起作用嗎?注入不起作用?
['fdfsd','gfdhgf'].inject(Hash.new){|sum,e| sum[e] = e}
使用Ruby-1.9.2-P180,得到IndexError: string not matched
== ==解決
['fdfsd','gfdhgf'].inject(Hash.new){|sum,e| sum[e] = e; sum}
在1.9有也each_with_object
:
>> ['fdfsd','gfdhgf'].each_with_object(Hash.new){|e,sum| sum[e] = e}
=> {"fdfsd"=>"fdfsd", "gfdhgf"=>"gfdhgf"}
請注意,與inject
相比,塊參數是相反的,您不必顯式返回累加器。順便說一句,在這個特定的情況下,我會和J-L一起回答。
不同的方法有同樣的效果:
a = ['fdfsd','gfdhgf']
Hash[a.zip(a)]