0Pricing
Swift Academy · Урок

Введение в optional: ?, nil, if let, guard let, ??

Познакомьтесь с optional: объявлением с помощью ?, представлением отсутствующих значений через nil и распаковкой посредством if let, guard let и ??

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

Что такое опционал?

Опционалы представляют значение, которое может присутствовать или быть равно nil. Добавьте ? к типу, чтобы сделать его опциональным.

  • Явно обрабатывайте отсутствие значения
  • Помогают избежать многих сбоев

Привязка if let

Объявите значение с помощью ?, а затем используйте if let, чтобы безопасно извлечь его, если оно присутствует.

var nickname: String? = nil
print("nickname =", String(describing: nickname))

// Optional binding with if let
let input: String? = "Ada"
if let name = input {
    print("Hello, \\(name)")
} else {
    print("No name")
}

guard let

guard let извлекает значение и досрочно завершает выполнение, если оно равно nil, благодаря чему код остаётся плоским и понятным.

func greet(_ maybeName: String?) {
    guard let name = maybeName else {
        print("Missing name"); return
    }
    print("Hi, \\(name)!")
}
greet(nil)
greet("Grace")

Оператор объединения с nil (??)

Используйте ??, чтобы подставить значение по умолчанию, если опционал равен nil.

let provided: String? = nil
let username = provided ?? "Guest"
print("Username:", username)

Цепочка опционалов

Цепочка опционалов (?.) прекращается, когда любое её звено равно nil.

struct Profile { var city: String? }
struct User { var profile: Profile? }

let u1 = User(profile: Profile(city: "Paris"))
let u2 = User(profile: nil)

// Optional chaining safely traverses missing links
print(u1.profile?.city?.uppercased() ?? "No city")  // "PARIS"
print(u2.profile?.city ?? "No city")                // "No city"

Советы и подводные камни

Советы:

  • Избегайте ! (принудительного извлечения), если не уверены на 100 %, что значение не равно nil.
  • Для ясности предпочитайте if let или guard let.
  • Используйте ??, чтобы задавать безопасные значения по умолчанию.

Поведение guard let

Быстрая проверка: что делает guard let?

Повторение

Повторение: объявляйте опционалы с помощью ?, представляйте отсутствие значения с помощью nil, извлекайте значения с помощью if let или guard let и задавайте значения по умолчанию с помощью ??. Используйте цепочки опционалов для безопасного обращения к связанным значениям.

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

Урок «Введение в optional: ?, nil, if let, guard let, ??» бесплатный?

Да — полный текст урока «Введение в optional: ?, nil, if let, guard let, ??» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.

Чему я научусь в уроке «Введение в optional: ?, nil, if let, guard let, ??»?

Познакомьтесь с optional: объявлением с помощью ?, представлением отсутствующих значений через nil и распаковкой посредством if let, guard let и ?? Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

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

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

Сколько времени занимает урок «Введение в optional: ?, nil, if let, guard let, ??»?

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

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

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

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

  1. let и var, выведение типов, литералы, кортежи
  2. Основные типы: числа, Bool, String, Character
  3. Введение в optional: ?, nil, if let, guard let, ??
← Назад к Swift Academy