2013-03-04 3 views
2

У меня возникли проблемы с пониманием этого комментария.Кто может это объяснить?

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

Не могли бы вы объяснить, как это работает в деталях?

+2

Пожалуйста, найдите время, чтобы придумать гораздо лучшее название для ваших вопросов. «Кто может это сказать?» может применяться к множеству тем и вопросов. –

ответ

5

{:a => "a", :b => "b"} создает Хэш.
Передача этого Array создаст массив массивов. Каждый элемент массива внешнего массива будет другим массивом, содержащим ключ и значение одного элемента хэша.

+0

Что означает: a => «a» означает? –

+0

Почему: a - это ключ, а «a» - значение? –

+0

Ну, это синтаксис: ' =>'. Здесь нет ничего особенного. –

5

Методы Array преобразуют ваш хэш в массив.
Следовательно, для каждой записи хэша ruby ​​создаст массив с двумя элементами: ключ и значение записи в хэше.

У вас есть две записи в массиве:

:a => "a", который становится [:a, "a"]
:b => "b" который становится [:b, "b"]

+0

Что означает: a => «a» означает? –

+0

Почему: a - это ключ, а «a» - значение? –

+0

Потому что в вашем хеше: a есть ключ, а «a» - значение. –

5

Это на самом деле метод, предоставляемый модулем ядра.

Сначала он пытается вызвать to_ary (возврат self для массива), затем to_a по аргументу.

Вы получите тот же результат, используя соответствующие методы to_ary и to_a.

+0

Что означает: a =>" a "означает? –

+0

Почему: a является ключом, а «a» является значением? –

Смежные вопросы