Menu
CoddyTech

Метод 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
challenge icon

Задание

Легко

На вход будут поданы две строки:

  1. Список разрешённых имён пользователей, разделённых запятыми (например, admin,user,guest,moderator)
  2. Имя пользователя для проверки

Проверьте, есть ли имя пользователя в списке разрешённых. Если есть, выведите Access granted. Если нет, выведите Access denied.

Шаги:

  1. Прочитайте список имён пользователей, разделённых запятыми, и разделите его на массив строк
  2. Прочитайте имя пользователя для проверки
  3. Используйте метод contains(), чтобы определить, есть ли имя пользователя в списке разрешённых
  4. Выведите соответствующее сообщение в зависимости от результата

Подсказка: Используйте 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" в зависимости от результата
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Песочница Swift