Menu
CoddyTech

Методы хэшей

Часть раздела Основы путешествия по 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
challenge icon

Задание

Легко

Считайте две строки ввода:

  1. Хеш, представленный парами ключ-значение, разделёнными запятыми, в формате key:value (например, name:Alice,age:25,city:Paris)
  2. Ключ, наличие которого нужно проверить (строка)

Разберите первую строку ввода, чтобы создать хеш, а затем используйте изученные методы хешей, чтобы вывести следующую информацию, каждую с новой строки:

  1. Выведите каждый ключ в хеше (по одному в строке)
  2. Выведите --- в качестве разделителя
  3. Выведите каждое значение в хеше (по одному в строке)
  4. Выведите --- в качестве разделителя
  5. Выведите количество пар ключ-значение в хеше
  6. Выведите --- в качестве разделителя
  7. Выведите true или false, указывая, пуст ли хеш
  8. Выведите --- в качестве разделителя
  9. Выведите 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
quiz iconПроверьте себя

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

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

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