← Назад к вопросам

Что такое where в Swift?

2.0 Middle🔥 161 комментариев
#Другое

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое where в Swift?

where в Swift — это ключевое слово, которое используется для добавления условий в различных контекстах кода. Оно позволяет фильтровать данные и контролировать выполнение кода. Рассмотрим основные применения.

1. Where в циклах

В циклах where добавляет условие, которое должно быть истинно, чтобы тело цикла выполнилось:

let numbers = [1, 2, 3, 4, 5, 6]
for num in numbers where num % 2 == 0 {
    print(num)  // Выведет: 2, 4, 6
}

2. Where в switch

В switch-выражениях where позволяет добавить дополнительное условие к case:

let point = (x: 2, y: 3)
switch point {
case (let x, let y) where x == y:
    print("На диагонали")
case (let x, let y) where x > y:
    print("x больше y")
default:
    print("Другие случаи")
}

3. Where в generic constraints

where используется для ограничения типов в generics:

func printIfEqual<T: Equatable>(a: T, b: T) where T: Equatable {
    if a == b {
        print("Равны")
    }
}

4. Where в фильтрации коллекций

В методах работы с коллекциями where позволяет фильтровать элементы:

let students = ["Иван", "Мария", "Пётр"]
let filtered = students.filter { $0.count > 4 }

Основные преимущества

  • Читаемость кода — условие находится близко к циклу/выражению
  • Избежание вложенности — не нужно писать if внутри цикла
  • Безопасность типов — для generics условия проверяются на этапе компиляции
  • Производительность — фильтрация происходит непосредственно в структуре, не требуя дополнительных проверок

where — это мощный инструмент в Swift для написания чистого и выразительного кода, который часто заменяет необходимость в дополнительных if-условиях и вложенности.

Что такое where в Swift? | PrepBro