Menu
Coddy logo textTech

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

Задание

Легко

Ты получишь две строки входных данных:

  1. Разделённый запятыми list разрешённых usernames (например, admin,user,guest,moderator)
  2. username для проверки

Проверь, существует ли username в разрешённом list. Если существует, выведи Access granted. Если не существует, выведи Access denied.

Steps:

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

Подсказка: Используй components(separatedBy:), чтобы разделить строку на array. Например:

let text = "a,b,c"
let parts = text.components(separatedBy: ",")
REQUIRED OUTPUT FORMAT: [Your translated content here]

Попробуйте сами

// Прочитать список разрешённых имён пользователей, разделённых запятыми
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
quiz iconПроверьте себя

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

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

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