2

我无法理解此评论。

Array({:a => "a", :b => "b"}) #=> [[:a, "a"], [:b, "b"]]

你能详细解释一下它是如何工作的吗?

4

3 回答 3

5

{:a => "a", :b => "b"}创建一个哈希。
将其传递给Array将创建一个数组数组。外部数组的每个数组元素将是另一个数组,其中包含哈希的一项的键和值。

于 2013-03-04T14:46:42.790 回答
5

这些Array方法将您的哈希转换为数组。
因此,对于散列的每个条目,ruby 将创建一个包含两个元素的数组:散列中条目的键和值。

您的数组中有两个条目:

:a => "a"哪个变成[:a, "a"]
:b => "b"哪个变成[:b, "b"]

于 2013-03-04T14:47:45.370 回答
5

它实际上是 Kernel 模块提供的一种方法。

首先它尝试调用to_ary(为数组返回 self),然后to_a是参数。

to_ary使用相应的方法和.你会得到相同的结果to_a

于 2013-03-04T14:52:30.397 回答