Методы хэшей
Часть раздела Основы путешествия по 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Попробуйте сами
# Считайте входные данные
input_string = gets.chomp
key_to_check = gets.chomp
# Разберите входную строку, чтобы создать hash
hash = {}
input_string.split(',').each do |pair|
key, value = pair.split(':')
hash[key] = value
end
# TODO: Напишите свой код ниже
# Используйте методы hash, чтобы:
# 1. Вывести каждый ключ (по одному на строку)
# 2. Вывести "---" в качестве разделителя
# 3. Вывести каждое значение (по одному на строку)
# 4. Вывести "---" в качестве разделителя
# 5. Вывести количество пар «ключ — значение»
# 6. Вывести "---" в качестве разделителя
# 7. Вывести true/false, если hash пуст
# 8. Вывести "---" в качестве разделителя
# 9. Выведите true/false в зависимости от того, существует ли key_to_check в hashВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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Преобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложьПотренируйтесь самостоятельно: Онлайн-компилятор Ruby