Методы хэшей
Часть раздела Основы путешествия по Ruby на Coddy — урок 76 из 88.
Ruby предоставляет несколько встроенных методов, которые помогают более эффективно проверять и работать с хешами. Эти методы обеспечивают быстрый доступ к информации о содержимом вашего хеша.
Метод keys возвращает массив всех ключей в хеше:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys # Выводит: name, age, cityАналогично, метод values возвращает массив всех значений:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values # Выводит: Alice, 25, ParisЧтобы проверить, существует ли определенный ключ, используйте key? или его псевдоним has_key?:
person = {"name" => "Alice", "age" => 25}
puts person.key?("name") # Выводит: true
puts person.key?("country") # Выводит: falseМетод length сообщает вам, сколько пар ключ-значение содержит хеш:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length # Выводит: 3Наконец, empty? проверяет, есть ли в хеше вообще какие-либо пары:
data = {}
puts data.empty? # Выводит: trueЗадание
ЛегкоПрочитайте две строки ввода:
- Хэш, представленный в виде пар ключ-значение, разделенных запятыми, в формате
key:value(например,name:Alice,age:25,city:Paris) - Ключ для проверки на существование (строка)
Преобразуйте первый ввод для создания хэша, затем используйте изученные методы хэша, чтобы вывести следующую информацию, каждую на новой строке:
- Выведите каждый ключ в хэше (по одному на строку)
- Выведите
---в качестве разделителя - Выведите каждое значение в хэше (по одному на строку)
- Выведите
---в качестве разделителя - Выведите количество пар ключ-значение в хэше
- Выведите
---в качестве разделителя - Выведите
trueилиfalse, указывающее, является ли хэш пустым - Выведите
---в качестве разделителя - Выведите
trueилиfalse, указывающее, существует ли ключ из второго ввода в хэше
Например, если входные данные — name:Alice,age:25,city:Paris и age, вывод должен быть следующим:
name
age
city
---
Alice
25
Paris
---
3
---
false
---
trueЕсли входные данные — product:Laptop,price:999 и stock, вывод должен быть следующим:
product
price
---
Laptop
999
---
2
---
false
---
falseЕсли входные данные — status:active и status, вывод должен быть следующим:
status
---
active
---
1
---
false
---
trueШпаргалка
Ruby предоставляет встроенные методы для проверки и работы с хешами:
Метод keys возвращает массив всех ключей:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys # Выводит: name, age, cityМетод values возвращает массив всех значений:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values # Выводит: Alice, 25, ParisМетод key? (или его псевдоним has_key?) проверяет, существует ли определенный ключ:
person = {"name" => "Alice", "age" => 25}
puts person.key?("name") # Выводит: true
puts person.key?("country") # Выводит: falseМетод length возвращает количество пар ключ-значение:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length # Выводит: 3Метод empty? проверяет, пуст ли хеш:
data = {}
puts data.empty? # Выводит: trueПопробуйте сами
# Чтение входных данных
input_string = gets.chomp
key_to_check = gets.chomp
# Разбор входной строки для создания хеша
hash = {}
input_string.split(',').each do |pair|
key, value = pair.split(':')
hash[key] = value
end
# TODO: Напишите свой код ниже
# Используйте методы хеша, чтобы:
# 1. Вывести каждый ключ (по одному на строку)
# 2. Вывести "---" в качестве разделителя
# 3. Вывести каждое значение (по одному на строку)
# 4. Вывести "---" в качестве разделителя
# 5. Вывести количество пар ключ-значение
# 6. Вывести "---" в качестве разделителя
# 7. Вывести true/false, если хеш пуст
# 8. Вывести "---" в качестве разделителя
# 9. Вывести true/false, если key_to_check существует в хешеВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь