Доступ к элементам хэша
Часть раздела Основы путешествия по Ruby на Coddy — урок 74 из 88.
Теперь, когда вы знаете, как создавать хеши, вам нужно извлечь хранящиеся в них значения. В отличие от массивов, где вы используете числовые индексы, хеши используют ключи для доступа к своим значениям.
Поместите ключ в квадратные скобки, чтобы получить соответствующее ему значение:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person["name"] # Выводит: Alice
puts person["age"] # Выводит: 25Ключ должен в точности совпадать с тем, который вы использовали при создании хеша. Если вы попытаетесь обратиться к несуществующему ключу, Ruby вернет nil:
person = {"name" => "Alice", "age" => 25}
puts person["country"] # Выводит: (ничего - nil)Вы также можете использовать метод fetch, который позволяет указать значение по умолчанию, если ключ отсутствует:
person = {"name" => "Alice"}
puts person.fetch("name", "Unknown") # Выводит: Alice
puts person.fetch("country", "Unknown") # Выводит: UnknownЭто полезно, когда вы хотите корректно обрабатывать отсутствующие ключи вместо получения nil.
Задание
ЛегкоПрочитайте четыре строки входных данных:
- Название продукта (строка)
- Цена (число с плавающей точкой)
- Количество на складе (целое число)
- Ключ для поиска (строка)
Создайте хеш с именем product со следующими парами ключ-значение:
"name"соответствует названию продукта"price"соответствует цене (как float)"stock"соответствует количеству (как integer)
Затем используйте метод fetch, чтобы извлечь значение для ключа, указанного в четвертой строке ввода. Если ключ не существует, используйте "Not found" в качестве значения по умолчанию. Выведите результат.
Например, если входные данные: Laptop, 999.99, 15 и price, результат должен быть:
999.99Если входные данные: Keyboard, 49.99, 100 и name, результат должен быть:
KeyboardЕсли входные данные: Mouse, 29.99, 50 и color, результат должен быть:
Not foundЕсли входные данные: Monitor, 299.0, 8 и stock, результат должен быть:
8Шпаргалка
Для доступа к значениям в хеше используйте ключ внутри квадратных скобок:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person["name"] # Выводит: Alice
puts person["age"] # Выводит: 25Если ключ не существует, Ruby возвращает nil:
person = {"name" => "Alice", "age" => 25}
puts person["country"] # Выводит: (ничего - nil)Используйте метод fetch, чтобы указать значение по умолчанию для отсутствующих ключей:
person = {"name" => "Alice"}
puts person.fetch("name", "Unknown") # Выводит: Alice
puts person.fetch("country", "Unknown") # Выводит: UnknownПопробуйте сами
# Чтение входных данных
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp
# TODO: Напишите свой код ниже
# Создайте хеш под названием 'product' с ключами "name", "price" и "stock"
# Затем используйте метод fetch для получения значения для key_to_lookup
# Используйте "Not found" в качестве значения по умолчанию, если ключ не существует
# Вывод результата
puts resultВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод11Массивы
Создание массивовДоступ к элементам массиваИзменение массивовМетоды массивовПовторение — Массив произведенийПовторение — Перевернутый массивСокращенная запись для массивов14Хэши
Создание хэшейДоступ к элементам хэшаИзменение хэшейМетоды хэшейИтоги — Хэш продуктаСимволы как ключи хэша3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь