小编典典

数组散列 Ruby

all

转换此数组:

a = ["item 1", "item 2", "item 3", "item 4"]

…到哈希:

{ "item 1" => "item 2", "item 3" => "item 4" }

偶数 索引处的元素是 奇数 索引是


阅读 78

收藏
2022-06-24

共1个答案

小编典典

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]
2022-06-24