Метод 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: ",")Шпаргалка
Метод 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")
}
// Valid choiceМетод contains() также работает со строками для проверки наличия подстрок:
let message = "Hello, Swift!"
print(message.contains("Swift")) // trueЧтобы разделить строку на массив, используйте 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Повторение — 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Повторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод