Menu
CoddyTech

Guard let

Часть раздела Основы путешествия по Swift на Coddy. Урок 13 из 86.

Если if let распаковывает опционал и выполняет код, когда значение существует, то guard let действует противоположным образом. Он выполняет ранний выход, когда значение отсутствует. Это особенно полезно внутри функций, когда нужно сначала обработать «плохой» случай и сохранить основную логику чистой.

func greet(name: String?) {
    guard let unwrappedName = name else {
        print("No name provided")
        return
    }
    print("Hello, \(unwrappedName)!")
}

greet(name: "Taylor") // Привет, Тейлор!
greet(name: nil)      // Имя не указано

Инструкция guard let проверяет, есть ли значение у name. Если значения нет, выполняется блок else, и функция завершается с помощью return. Если опционал содержит значение, оно распаковывается в unwrappedName, и вот в чём ключевое отличие от if let: распакованная переменная остаётся доступной до конца функции, а не только внутри блока.

Этот шаблон «раннего выхода» делает код более читаемым: ошибки обрабатываются заранее, поэтому основная логика не оказывается вложенной в несколько инструкций if.

challenge icon

Задание

Легко
Напиши функцию validateAge, которая принимает опциональный параметр age и использует guard let, чтобы безопасно извлечь его значение.

Если возраст равен nil, верни "Invalid age". В противном случае верни "Age: [value]", где [value] — извлечённое значение возраста.

Параметры:

  • age (Int?): опциональное целое число, обозначающее возраст человека

Возвращаемое значение: строка: либо "Invalid age", если входное значение равно nil, либо "Age: [value]" с извлечённым значением.

Заблокированные строки под твоей функцией считывают возраст из входных данных (если на вход подано nil, считывается nil) и выводят то, что возвращает твоя функция.

Пример: если age равно 25, верни "Age: 25". Если age равно nil, верни "Invalid age".

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

func validateAge(age: Int?) -> String {
    // Напишите код здесь
}
quiz iconПроверьте себя

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

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

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