0Pricing
Swift Academy · Урок

if let и сокращённая привязка

Извлекайте значения из необязательных типов в пределах области видимости, включая сокращённую запись Swift 5.7.

«if let и сокращённая привязка» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Зачем связывать опциональные значения

Опциональное значение нужно распаковать (unwrapped), прежде чем использовать содержащееся в нём значение. Конструкция if let безопасно выполняет распаковку только при наличии значения.

let stored: Int? = 5
if let value = stored {
    print(value)
}

Форма if let

Запишите if let name = optional { ... }. Внутри фигурных скобок name — распакованное необязательное значение. Если опциональное значение равно nil, блок пропускается.

let input: String? = "Swift"
if let text = input {
    print(text.count)
}

Добавление else

К конструкции можно добавить else, чтобы явно обработать случай отсутствия значения nil.

let age: Int? = nil
if let a = age {
    print("Age is \(a)")
} else {
    print("No age provided")
}

Сокращённая запись связывания

Начиная с версии 5.7, если новая константа имеет то же имя, что и опциональное значение, можно написать просто if let value, без части = value.

let score: Int? = 90
if let score {
    print(score)
}

Сокращённая и полная записи

Сокращённая запись if let score идентична записи if let score = score. Она уменьшает повторение, когда имена совпадают.

let nickname: String? = "Sam"
if let nickname {
    print("Hi \(nickname)")
}

Область действия связывания

Распакованная константа существует только внутри тела if. За его пределами опциональное значение по-прежнему остаётся опциональным.

let maybe: Int? = 7
if let maybe {
    print(maybe + 1)
}
print(maybe as Any)

Связывание после преобразований

if let естественным образом сочетается с преобразованиями, которые могут завершиться неудачей, например Int(string).

let raw = "42"
if let number = Int(raw) {
    print(number * 2)
} else {
    print("Not a number")
}

Связывание значений словаря

Используйте if let, чтобы безопасно прочитать значение словаря, которое может отсутствовать.

let ages = ["Ann": 30]
if let annAge = ages["Ann"] {
    print(annAge)
}
if let bobAge = ages["Bob"] {
    print(bobAge)
} else {
    print("Bob not found")
}

Связывание изменяемой копии

Используйте if var, если хотите локально изменить распакованное значение. Это изменение не затронет исходное опциональное значение.

let count: Int? = 10
if var c = count {
    c += 5
    print(c)
}

Избегаем вложенности

Логику, зависящую от значения, можно безопасно разместить внутри блока связывания, избегая принудительной распаковки с помощью !.

let name: String? = "Lia"
if let name {
    let upper = name.uppercased()
    print(upper)
}

Почему не стоит выполнять принудительную распаковку

Принудительная распаковка с помощью ! приводит к сбою, если опциональное значение равно nil. if let — безопасная альтернатива, которая не приводит к сбою.

let value: Int? = nil
if let value {
    print(value)
} else {
    print("Safe: was nil")
}

Быстрая проверка

Проверьте связывание опциональных значений.

Итоги: if let и сокращённое связывание

if let безопасно распаковывает опциональное значение в локальную константу только при наличии значения. Сокращённая запись версии 5.7 if let name избавляет от повторения имени. Предпочитайте её принудительной распаковке.

let x: Int? = 3
if let x { print(x) }

Часто задаваемые вопросы

Урок «if let и сокращённая привязка» бесплатный?

Да — полный текст урока «if let и сокращённая привязка» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «if let и сокращённая привязка»?

Извлекайте значения из необязательных типов в пределах области видимости, включая сокращённую запись Swift 5.7. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «if let и сокращённая привязка»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. if let и сокращённая привязка
  2. guard let для раннего выхода
  3. Привязка нескольких необязательных значений
  4. Шаблон Optional в switch и for
← Назад к Swift Academy