我认为我的方法有点笨拙,并且可能会有一个我错过的单行程。想法?
def _to_hash
hsh = {}
self.each_slice(2){|v| hsh[v[0]] = v[1]}
hsh
end
1.9.3-p0 :003 > ["a", 1, "b", 2]._to_hash
{
"a" => 1,
"b" => 2
}
答案 0 :(得分:4)
@ phiggy的方法是正确的,但也要记住你可以使用splat操作符:
a = ["a", 1, "b", 2]
Hash[*a] #=> {"a"=>1, "b"=>2}
答案 1 :(得分:3)
你想要Hash的。[]运算符:
> Hash["a", 1, "b", 2]
=> {"a"=>1, "b"=>2}