Menu
CoddyTech

Создание хэшей

Часть раздела Основы путешествия по Ruby на Coddy. Урок 73 из 88.

Массивы отлично подходят для хранения упорядоченных списков, но иногда нужно связывать значения с определёнными метками, а не с числовыми индексами. Хеш хранит данные в виде пар «ключ—значение», где каждому ключу соответствует значение.

Чтобы создать хеш, используйте фигурные скобки, а ключи и значения разделяйте с помощью => (это называется стрелкой хеша):

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person  # Выводит: {"name"=>"Alice", "age"=>25, "city"=>"Paris"}

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

Также можно создать пустой хеш и добавить пары позже:

scores = {}

puts scores  # Выводит: {}

Хэши идеально подходят для представления объектов реального мира с именованными атрибутами, например товара с названием и ценой или пользователя с адресом электронной почты и паролем. В отличие от массивов, где нужно помнить позиции, хэши позволяют использовать понятные имена для организации данных.

challenge icon

Задание

Легко

Прочитайте три строки входных данных:

  1. Название книги (строка)
  2. Имя автора (строка)
  3. Год публикации (целое число)

Создайте хеш с именем book и тремя парами «ключ-значение», используя синтаксис хеш-стрелки (=>):

  • "title" соответствует названию книги
  • "author" соответствует имени автора
  • "year" соответствует году публикации (как целому числу)

Выведите хеш с помощью puts.

Например, если входные данные — Ruby Basics, Jane Smith и 2023, вывод должен быть таким:

{"title"=>"Ruby Basics", "author"=>"Jane Smith", "year"=>2023}

Если входные данные — The Great Gatsby, F. Scott Fitzgerald и 1925, вывод должен быть таким:

{"title"=>"The Great Gatsby", "author"=>"F. Scott Fitzgerald", "year"=>1925}

Если входные данные — 1984, George Orwell и 1949, вывод должен быть таким:

{"title"=>"1984", "author"=>"George Orwell", "year"=>1949}

Попробуйте сами

# Считайте ввод
title = gets.chomp
author = gets.chomp
year = gets.to_i

# TODO: Создайте хеш 'book' с тремя парами ключ-значение, используя синтаксис hash rocket (=>)
# Ключи должны быть: "title", "author", "year"


# Выведите хеш
puts book
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Ruby