Мощный 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 — локальная установка не требуется.
Все уроки этого курса
- Расширенные возможности перечислений
- Мощный switch с сопоставлением по шаблону
- Моделирование конечных состояний