Метод include?
Часть раздела Основы путешествия по Ruby на Coddy. Урок 72 из 88.
При работе с массивами часто нужно проверить, существует ли определённый элемент, прежде чем выполнять действие. Метод include? в Ruby напрямую отвечает на этот вопрос, возвращая true или false.
fruits = ["apple", "banana", "orange"]
puts fruits.include?("banana") # Выводит: true
puts fruits.include?("grape") # Выводит: falseМетод проверяет точное совпадение, поэтому при работе со строками он учитывает регистр:
colors = ["Red", "Green", "Blue"]
puts colors.include?("Red") # Выводит: true
puts colors.include?("red") # Выводит: falseЭтот метод особенно полезен в условных операторах. Вместо того чтобы перебирать массив в поисках элемента, можно просто проверить, есть ли он в массиве:
allowed_users = ["alice", "bob", "charlie"]
current_user = "bob"
if allowed_users.include?(current_user)
puts "Access granted"
else
puts "Access denied"
endМетод include? работает с данными любого типа, хранящимися в массиве, включая числа, символы и даже другие массивы.
Задание
ЛегкоПрочитайте две строки ввода:
- Список товаров, имеющихся в магазине, в виде строк, разделённых запятыми (например,
apple,banana,orange,milk,bread) - Список товаров из вашего списка покупок в виде строк, разделённых запятыми (например,
banana,eggs,milk,cheese)
Для каждого товара из списка покупок проверьте с помощью метода include?, есть ли он в магазине. Выведите каждый товар, за которым следуют Available или Not available, в зависимости от того, есть ли он в запасах магазина.
Помните, что include? проверяет точные совпадения, поэтому при сравнении учитывается регистр символов.
Например, если на вход поданы apple,banana,orange,milk,bread и banana,eggs,milk,cheese, вывод должен быть таким:
banana - Available
eggs - Not available
milk - Available
cheese - Not availableЕсли на вход поданы Red,Green,Blue и red,Green,Yellow, вывод должен быть таким:
red - Not available
Green - Available
Yellow - Not availableЕсли на вход поданы coffee,tea,juice и coffee,water,tea, вывод должен быть таким:
coffee - Available
water - Not available
tea - AvailableЕсли на вход поданы pen,pencil,eraser и pen, вывод должен быть таким:
pen - AvailableПопробуйте сами
# Считайте список товаров в магазине (элементы разделены запятыми)
store_items = gets.chomp.split(",")
# Считайте список покупок (элементы разделены запятыми)
shopping_list = gets.chomp.split(",")
# TODO: Напишите свой код ниже
# Для каждого товара из списка покупок проверьте, есть ли он в магазине
# с помощью метода include? и выведите результатВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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