Swift Academy · Урок

Привязка значений и предложения where

Привязывайте сопоставленные значения и добавляйте дополнительные условия.

Урок 3 из 413 шагов

«Привязка значений и предложения 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 — локальная установка не требуется.

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

  1. Исчерпывающий switch по значениям
  2. Сопоставление диапазонов и кортежей
  3. Привязка значений и предложения where
  4. Составные варианты и fallthrough
← Назад к Swift Academy