用ruby生成值1到31的哈希值?

kru*_*hah 1 ruby ruby-on-rails

我怎样才能生成像这样的哈希?

{1 => 1, 2 => 2, 3 => 3}
Run Code Online (Sandbox Code Playgroud)

从1到31带循环.

Mic*_*ohl 10

例如:

(1..31).inject({}) { |h, k| h[k] = k; h}
Run Code Online (Sandbox Code Playgroud)

如果你想要一个适用于所有数字的哈希,你可以这样做:

>> h = Hash.new { |h, k| h[k] = k } #=> {}
>> h[221] #=> 221
Run Code Online (Sandbox Code Playgroud)


Yos*_*ssi 6

def generate_hash r
  Hash[r.zip r]
end

generate_hash (1..31)
Run Code Online (Sandbox Code Playgroud)