2013-03-04 74 views
2

我无法理解此评论。谁能解释这一点?

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

你能否解释它是如何工作的细节?

+2

请花时间为您的问题提出一个更好的标题。 “谁能举个例子呢?”可以适用于无数的话题和问题。 – 2013-03-04 16:42:05

回答

5

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

+0

做什么:a =>“a”是什么意思? – 2013-03-04 19:25:31

+0

为什么:a是关键,“a”是价值? – 2013-03-04 19:34:20

+0

好吧,这就是语法:' =>'。这里没什么特别的。 – 2013-03-04 19:37:09

5

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

你有你的阵列中的两个条目:

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

+0

做什么:a =>“a”是什么意思? – 2013-03-04 19:22:47

+0

为什么:a是关键,“a”是价值? – 2013-03-04 19:34:44

+0

因为在你的散列中,:a是一个键,“a”是一个值。 – 2013-03-05 08:12:02

5

它实际上是由内核模块提供了一种方法。

首先尝试调用to_ary(返回数组自身),然后使用to_a参数。

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

+0

是什么意思:a =>“a”是什么意思? – 2013-03-04 19:27:23

+0

为什么:a是关键,“a”是价值? – 2013-03-04 19:35:03