Метод Contains
Часть раздела Основы путешествия по Swift на Coddy. Урок 76 из 86.
При работе с массивами часто нужно проверить, существует ли определённое значение, прежде чем выполнять действие. Для этой цели в Swift есть метод contains(). Он возвращает true, если элемент найден, и false в противном случае.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// У нас есть бананы!Это гораздо чище, чем писать цикл для ручного поиска по массиву. Метод работает с массивом любого типа, независимо от того, содержит ли он строки, числа или другие значения:
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Задание
ЛегкоНа вход будут поданы две строки:
- Список разрешённых имён пользователей, разделённых запятыми (например,
admin,user,guest,moderator) - Имя пользователя для проверки
Проверьте, есть ли имя пользователя в списке разрешённых. Если есть, выведите Access granted. Если нет, выведите Access denied.
Шаги:
- Прочитайте список имён пользователей, разделённых запятыми, и разделите его на массив строк
- Прочитайте имя пользователя для проверки
- Используйте метод
contains(), чтобы определить, есть ли имя пользователя в списке разрешённых - Выведите соответствующее сообщение в зависимости от результата
Подсказка: Используйте components(separatedBy:), чтобы разделить строку на массив. Например:
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. Выведите "Access granted" или "Access denied" в зависимости от результатаВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: простая математикаОператоры сравнения7Основы ввода-вывода
Функция printИнтерполяция строкВвод с ReadLineПреобразование типовПовторение: до 120Повторение: истина или ложь2Переменные
Let и VarАннотации типовЧислаСтрокаЛогический типСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор разделения счёта
Приветственное сообщениеВвод данных14Массивы: продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опциональные значения
Что такое опциональные значенияИзвлечение значения с помощью if letGuard letОператор объединения с nilПовторение — безопасное извлечение значения6Принятие решений
Условный оператор ifIf — ElseПовторение: простой калькуляторОператор switchSwitch с диапазонами9Циклы
Цикл for-inЦикл whileЦикл repeat-whileПрерывание циклаПереход к следующей итерацииПовторение — факториалДиапазоны в циклахВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Swift