Ответ 1
Собственно, ваш пример псевдокода в вашем вопросе правильный.
Для вашего хеша
h = {
"side1" => ["green", "Green"],
"side2" => ["verde", "Verde"]
}
ключи 'side1'
и 'side2'
(с их значениями справа от хеш-ключа)
Итак, h['side2'].first
говорит, что для значения ключа 'side2'
получить первый элемент в значении ["verde", "Verde"]
, который является массивом. h['side2'][0]
также будет работать. псевдоним first
является удобным методом.
Чтобы получить последний элемент массива, не зная, насколько он большой, используйте отрицательный индекс. например h['side2'][-1]
, что в этом случае эквивалентно h['side2'][1]
.
Обратите внимание, что ключи в хеше относятся к тому, является ли это строкой или символом. То есть h[:side2]
возвращает nil, поскольку ключ не был установлен. Rails имеет класс HashWithIndifferentAccess
, который обрабатывает символы и строки как эквивалентные ключи.
ИЗМЕНИТЬ
Я должен был упомянуть, что я протестировал свой ответ в irb
. irb
- отличный способ проверить ваши идеи о том, что может и может не работать. В командной строке терминала введите irb
, введите и воспроизведите с рубином.