Привязка значений и предложения where
Привязывайте сопоставленные значения и добавляйте дополнительные условия.
«Привязка значений и предложения where» — бесплатный урок Swift Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.
Привязка в ветви
Ветвь оператора выбора может привязать сопоставленное значение к константе с помощью case let x, чтобы это значение можно было использовать внутри ветви.
let value = 42
switch value {
case let n:
print("The number is \(n)")
}Привязка части кортежа
Можно привязать только нужные части кортежа, используя let в отдельных позициях.
let point = (3, 7)
switch point {
case (let x, 0):
print("On x-axis at \(x)")
case (0, let y):
print("On y-axis at \(y)")
case let (x, y):
print("At \(x), \(y)")
}Дополнительное условие
Добавьте к ветви предложение where, чтобы применить дополнительное логическое условие к привязанному значению. Ветвь совпадёт только при выполнении и шаблона, и условия.
let number = 8
switch number {
case let n where n % 2 == 0:
print("\(n) is even")
case let n:
print("\(n) is odd")
}Дополнительное условие для диапазонов
Можно сочетать шаблон диапазона с предложением where для более точного управления сопоставлением.
let score = 95
switch score {
case 90...100 where score == 100:
print("Perfect")
case 90...100:
print("Excellent")
default:
print("Keep trying")
}Дополнительное условие для кортежей
Предложение where может сравнивать элементы привязанного кортежа друг с другом.
let point = (4, 4)
switch point {
case let (x, y) where x == y:
print("On the diagonal")
case let (x, y):
print("Off diagonal at \(x), \(y)")
}Несколько дополнительных условий
Условие после where может быть любым логическим выражением, включая && и ||.
let n = 15
switch n {
case let x where x > 10 && x < 20:
print("In the teens-ish range")
default:
print("Outside range")
}Порядок с дополнительным условием
Ветвь с предложением where совпадает только при истинности условия; в противном случае Swift переходит к следующей ветви.
let temp = 5
switch temp {
case let t where t < 0:
print("Freezing")
case let t where t < 10:
print("Cold")
default:
print("Mild or warm")
}Привязка в ветвях с диапазонами
Можно привязать значение и одновременно ограничить его диапазоном с помощью where.
let age = 67
switch age {
case let a where a >= 65:
print("Senior, age \(a)")
case let a where a >= 18:
print("Adult, age \(a)")
default:
print("Minor")
}Классификация с привязками
Сочетание привязки и where позволяет одному оператору выбора одновременно классифицировать значение и выводить его.
let balance = -50
switch balance {
case let b where b < 0:
print("Overdrawn by \(-b)")
case 0:
print("Empty")
case let b:
print("Balance: \(b)")
}Преимущества привязок
Без привязки пришлось бы повторно обращаться к исходной переменной. Привязка создаёт понятное локальное имя и естественно сочетается с фильтрами where.
let input = 21
switch input {
case let n where n.isMultiple(of: 3):
print("\(n) is divisible by 3")
default:
print("Not divisible by 3")
}Привязка для всех остальных случаев
Последняя ветвь case let x без условия работает как ветвь по умолчанию и при этом предоставляет доступ к значению.
let code = 17
switch code {
case 0:
print("zero")
case let other:
print("non-zero: \(other)")
}Быстрая проверка
Проверьте привязку значения и дополнительное условие.
Повторение: привязка значений и дополнительные условия
Используйте case let x, чтобы привязать сопоставленное значение, и добавьте where, чтобы применить дополнительное условие. Вместе они позволяют одному оператору выбора классифицировать значения и использовать их в той же ветви.
let n = 6
switch n {
case let x where x > 0: print("positive \(x)")
default: print("non-positive")
}Изучай Swift с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 122
- Уроки
- 409
Часто задаваемые вопросы
Урок «Привязка значений и предложения where» бесплатный?
Да — полный текст урока «Привязка значений и предложения where» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.
Чему я научусь в уроке «Привязка значений и предложения where»?
Привязывайте сопоставленные значения и добавляйте дополнительные условия. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Привязка значений и предложения where»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Исчерпывающий switch по значениям
- Сопоставление диапазонов и кортежей
- Привязка значений и предложения where
- Составные варианты и fallthrough