转换此数组:
a = ["item 1", "item 2", "item 3", "item 4"]
…到哈希:
{ "item 1" => "item 2", "item 3" => "item 4" }
即 偶数 索引处的元素是 键 , 奇数 索引是 值 。
a = ["item 1", "item 2", "item 3", "item 4"] h = Hash[*a] # => { "item 1" => "item 2", "item 3" => "item 4" }
而已。*称为 splat 运算符。
*
每个@Mike Lewis 的一个警告(在评论中):“对此要非常小心。Ruby 会扩展堆栈上的 splats。如果您使用大型数据集执行此操作,预计会炸毁您的堆栈。”
因此,对于大多数一般用例,此方法很棒,但如果您想对大量数据进行转换,请使用不同的方法。例如,@艁ukasz Niemier(也在评论中)为大型数据集提供了这种方法:
h = Hash[a.each_slice(2).to_a]