Метод Contains
Часть раздела Основы путешествия по Swift на Coddy. Урок 76 из 86.
При работе с массивами часто требуется проверить, существует ли определённое значение, прежде чем выполнять действие. Swift предоставляет метод contains() именно для этой цели. Он возвращает true, если элемент найден, и false в противном случае.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// У нас есть бананы!Это гораздо чище, чем вручную писать цикл для поиска в массиве. Метод работает с массивом любого типа, независимо от того, содержит ли он строки, numbers или другие значения:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // falseРаспространённый вариант использования — проверка пользовательского ввода по списку разрешённых значений:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// Допустимый выборМетод contains() также работает со строками, чтобы проверить, существует ли подстрока внутри более длинной строки:
let message = "Hello, Swift!"
print(message.contains("Swift")) // trueЗадание
ЛегкоТы получишь две строки входных данных:
- Разделённый запятыми list разрешённых usernames (например,
admin,user,guest,moderator) - username для проверки
Проверь, существует ли username в разрешённом list. Если существует, выведи Access granted. Если не существует, выведи Access denied.
Steps:
- Read разделённый запятыми list и раздели его на array строк
- Read username для проверки
- Используй метод
contains(), чтобы определить, находится ли username в разрешённом list - Выведи соответствующее message на основе result
Подсказка: Используй components(separatedBy:), чтобы разделить строку на array. Например:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")Попробуйте сами
// Прочитать список разрешённых имён пользователей, разделённых запятыми
let allowedList = readLine()!
// Прочитать имя пользователя для проверки
let username = readLine()!
// TODO: Напишите свой код ниже
// 1. Разделите allowedList на массив с помощью components(separatedBy:)
// 2. Используйте contains(), чтобы проверить, есть ли username в массиве
// 3. Print "Access granted" or "Access denied" based on the resultВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический вводПотренируйтесь самостоятельно: Песочница Swift