0Pricing
Swift Academy · Урок

Диапазоны как коллекции

Применяйте map и filter к последовательностям диапазонов.

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

Диапазоны — это последовательности

Диапазон — это не просто промежуток чисел, а последовательность, которую можно преобразовывать с помощью методов коллекций, таких как map и filter.

let squares = (1...5).map { $0 * $0 }
print(squares)

Преобразование диапазона

(1...n).map { ... } преобразует каждое число в новое значение и создаёт массив. Обратите внимание на скобки вокруг диапазона.

let doubled = (1...4).map { $0 * 2 }
print(doubled)

Зачем нужны скобки

Перед вызовом метода диапазон необходимо заключить в скобки, иначе Swift неправильно интерпретирует синтаксис. Вариант (1...5).map является правильным.

let labels = (1...3).map { "Item \($0)" }
print(labels)

Фильтрация диапазона

filter оставляет только значения, удовлетворяющие условию, и возвращает массив совпадений.

let evens = (1...10).filter { $0 % 2 == 0 }
print(evens)

Свёртка диапазона

reduce объединяет все значения в одно. Здесь мы складываем числа от 1 до 100.

let total = (1...100).reduce(0, +)
print(total)

Преобразование в массив

Если обернуть диапазон в Array(...), каждое значение будет создано и сохранено в массиве.

let nums = Array(1...5)
print(nums)
print(nums.count)

forEach для диапазона

Можно вызвать forEach, чтобы выполнить замыкание для каждого значения, подобно циклу.

(1...3).forEach { n in
    print("Tick \(n)")
}

Цепочки операций

Поскольку каждая операция возвращает коллекцию, можно объединить filter, а затем map, в одну цепочку.

let result = (1...10).filter { $0 % 2 == 0 }.map { $0 * $0 }
print(result)

Создание данных для поиска

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

let table = (1...5).map { (n: $0, square: $0 * $0) }
for row in table {
    print("\(row.n) -> \(row.square)")
}

contains и агрегатные операции

Диапазоны также поддерживают агрегатные запросы, такие как contains, min и max.

let r = 5...15
print(r.contains(10))
print(r.min() ?? 0)
print(r.max() ?? 0)

Подсчёт совпадений

Объедините filter с count, чтобы подсчитать количество значений, соответствующих условию.

let multiplesOf3 = (1...30).filter { $0 % 3 == 0 }.count
print(multiplesOf3)

Быстрая проверка

Проверьте диапазоны как коллекции.

Итоги: диапазоны как коллекции

Диапазоны являются последовательностями, поэтому к ним можно применять map, filter, reduce и forEach (не забудьте о скобках). Используйте Array(range), чтобы создать значения в массиве.

print((1...5).map { $0 * $0 })

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

Урок «Диапазоны как коллекции» бесплатный?

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

Чему я научусь в уроке «Диапазоны как коллекции»?

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

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

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

Сколько времени занимает урок «Диапазоны как коллекции»?

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

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

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

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

  1. Замкнутые и полуоткрытые диапазоны
  2. Односторонние диапазоны
  3. Подсчёт с помощью stride(from:to:by:)
  4. Диапазоны как коллекции
← Назад к Swift Academy