rubyの配列をHashに変換

["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]な配列を、
{0=>"A", 1=>"B", 2=>"C", 3=>"D", 4=>"E", 5=>"F", 6=>"G", 7=>"H", 8=>"I", 9=>"J"}なHashに変換したい時、

>> RUBY_DESCRIPTION
=> "ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9.6.0]"

>> ary_val = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
>> ary_val.enum_for(:each_with_index).inject({}){|hs,elm| hs[elm[1]] = elm[0]; hs}

ああ、以下でいいのだけれど

>> ary_val.each_with_index.inject({}){|hs,elm| hs[elm[1]] = elm[0]; hs}

とやって悦に入っていた。今日の俺。ですが、

>> ary_key = (0..ary_val.size-1).to_a
>> ary = [ary_key, ary_val].transpose
>> Hash[*ary.flatten]
=> {5=>"F", 0=>"A", 6=>"G", 1=>"B", 7=>"H", 2=>"C", 8=>"I", 3=>"D", 9=>"J", 4=>"E"}
>> 

とやったほうが分かりやすいか?と。ていうか、

>> Hash[0, "A", 1, "B", 3, "C"]
=> {0=>"A", 1=>"B", 3=>"C"}

を知らなかった。