0Pricing
Swift Academy · Урок

Мощный switch с сопоставлением по шаблону

Пишите выразительные конструкции switch: сопоставляйте связанные значения, диапазоны и кортежи, добавляйте условия where. Сохраняйте ветви исчерпывающими и понятными.

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

Зачем нужно сопоставление с шаблонами?

Оператор выбора Swift сопоставляет шаблоны: перечисления со связанными значениями, числовые диапазоны, кортежи и условия where. Он также проверяет полноту вариантов.

Связанные значения

Связывайте связанные значения непосредственно в шаблоне варианта.

enum Network {
    case success(code: Int, body: String)
    case failure(message: String)
    case offline
}

let r1: Network = .success(code: 200, body: "OK")
switch r1 {
case .success(let code, let body):
    print("success", code, body)
case .failure(let msg):
    print("fail:", msg)
case .offline:
    print("offline")
}

Сопоставление с диапазонами

Сопоставляйте числовые диапазоны, например 90...100 или 80..<90. Используйте ,, чтобы сопоставить несколько шаблонов в одном варианте.

let score = 73
switch score {
case 90...100:
    print("A")
case 80..<90:
    print("B")
case 60..<80:
    print("C")
case 0..<60:
    print("D")
default:
    print("invalid")
}

Кортежи и условия

Сопоставляйте кортежи и уточняйте условием where, чтобы получать понятные проверки, похожие на геометрические.

let point = (x: -2, y: 3)
switch point {
case (0, 0):
    print("origin")
case (let x, 0):
    print("x-axis at", x)
case (0, let y):
    print("y-axis at", y)
case (let x, let y) where x > 0 && y > 0:
    print("Q1:", x, y)
default:
    print("somewhere else")
}

Подстановочные символы и частичное сопоставление

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

enum Event {
    case message(String, priority: Int)
    case ping
}
let e: Event = .message("update", priority: 1)

switch e {
case .message(let text, priority: _):
    print("msg:", text)           // ignore priority with _
case .ping:
    print("ping")
}

Советы

Советы:

  • Сначала выбирайте конкретные случаи, а вариант по умолчанию оставляйте для редких остальных случаев.
  • Связывайте значения с помощью конструкции let и уточняйте условием where.
  • Проектируйте перечисления так, чтобы switch по возможности охватывал все случаи без варианта по умолчанию.

Возможности switch

Быстрая проверка: почему switch в Swift выразительнее?

Итоги

Итоги: используйте switch для сопоставления с шаблонами — связывайте данные перечислений, проверяйте диапазоны, объединяйте кортежи и фильтруйте с помощью where, сохраняя полноту охвата.

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

Урок «Мощный switch с сопоставлением по шаблону» бесплатный?

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

Чему я научусь в уроке «Мощный switch с сопоставлением по шаблону»?

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

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

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

Сколько времени занимает урок «Мощный switch с сопоставлением по шаблону»?

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

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

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

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

  1. Расширенные возможности перечислений
  2. Мощный switch с сопоставлением по шаблону
  3. Моделирование конечных состояний
← Назад к Swift Academy