谁能解释一下?

KZ *_*Ahn 2 ruby arrays hash

我无法理解这条评论.

Array({:a => "a", :b => "b"}) #=> [[:a, "a"], [:b, "b"]]
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*rth 5

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


Dam*_*IEU 5

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

您的数组中有两个条目:

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


meg*_*gas 5

它实际上是内核模块提供的一种方法.

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

您可以通过使用相应的方法得到相同的结果to_aryto_a.