谁能解释一下?

时间:2013-03-04 14:44:31

标签: ruby arrays hash

我无法理解这条评论。

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

你能解释一下它的工作原理吗?

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:5)

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

您的数组中有两个条目:

:a => "a"成为[:a, "a"]
:b => "b"变为[:b, "b"]

答案 2 :(得分:5)

它实际上是内核模块提供的方法。

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

您可以使用相应的方法to_aryto_a获得相同的结果。