我无法理解此评论。
Array({:a => "a", :b => "b"}) #=> [[:a, "a"], [:b, "b"]]
你能详细解释一下它是如何工作的吗?
{:a => "a", :b => "b"}
创建一个哈希。
将其传递给Array
将创建一个数组数组。外部数组的每个数组元素将是另一个数组,其中包含哈希的一项的键和值。
这些Array
方法将您的哈希转换为数组。
因此,对于散列的每个条目,ruby 将创建一个包含两个元素的数组:散列中条目的键和值。
您的数组中有两个条目:
:a => "a"
哪个变成[:a, "a"]
:b => "b"
哪个变成[:b, "b"]
它实际上是 Kernel 模块提供的一种方法。
首先它尝试调用to_ary
(为数组返回 self),然后to_a
是参数。
to_ary
使用相应的方法和.你会得到相同的结果to_a
。