0Pricing
Swift Academy · Урок

Односторонние диапазоны

Задавайте диапазоны без явно указанной границы для получения срезов.

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

Что такое односторонние диапазоны

Односторонний диапазон не содержит одну из границ. Чаще всего его используют, чтобы получить часть коллекции от определённой позиции или до неё.

let letters = ["a", "b", "c", "d", "e"]
let tail = letters[2...]
print(Array(tail))

От индекса до конца

arr[2...] означает «от индекса 2 до конца». Начальный индекс включён.

let nums = [10, 20, 30, 40]
print(Array(nums[1...]))

До определённого индекса

arr[..<3] означает «от начала до индекса 3, не включая его».

let nums = [10, 20, 30, 40]
print(Array(nums[..<3]))

Включая определённый индекс

arr[...2] означает «от начала до индекса 2 включительно».

let nums = [10, 20, 30, 40]
print(Array(nums[...2]))

Срезы сохраняют индексы

Срез сохраняет исходные индексы. Первый элемент arr[2...] по-прежнему находится под индексом 2, а не 0.

let nums = [10, 20, 30, 40]
let slice = nums[2...]
print(slice.startIndex)
print(slice[2])

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

Чтобы начать индексацию с 0 или получить отдельный массив, оберните срез в Array(...).

let nums = [10, 20, 30, 40]
let rest = Array(nums[1...])
print(rest[0])

Односторонние диапазоны в сопоставлении с образцом

Односторонние диапазоны также работают как шаблоны ветвей: case 18... соответствует 18 и любым большим значениям.

let age = 70
switch age {
case ..<18:
    print("Minor")
case 18...:
    print("Adult")
default:
    print("?")
}

Нижний односторонний шаблон

case ..<0 соответствует всему, что меньше нуля, и полезен для обработки отрицательных значений.

let value = -3
switch value {
case ..<0:
    print("negative")
case 0:
    print("zero")
default:
    print("positive")
}

Префикс строки

Односторонние диапазоны работают и со строками, если использовать их с индексами строк. Здесь мы удаляем первый символ с помощью среза.

let word = "Swift"
let chars = Array(word)
let rest = chars[1...]
print(String(rest))

Объединение срезов

Можно получить начало и конец массива с помощью двух односторонних срезов.

let data = [1, 2, 3, 4, 5, 6]
let head = Array(data[..<2])
let tail = Array(data[4...])
print(head)
print(tail)

Безопасное получение срезов

Выход за границы при получении среза вызывает сбой, поэтому сначала проверяйте индекс, если он получен из входных данных.

let nums = [1, 2, 3]
let start = 1
if start < nums.count {
    print(Array(nums[start...]))
}

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

Проверьте односторонние диапазоны.

Итоги: односторонние диапазоны

Односторонние диапазоны, такие как arr[2...], arr[..<3] и arr[...2], получают срез от определённой позиции или до неё. Срезы сохраняют исходные индексы, поэтому для повторной индексации используйте Array(...). Они также работают как шаблоны ветвей конструкции выбора.

let a = [1, 2, 3, 4]
print(Array(a[2...]))

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

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

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

Чему я научусь в уроке «Односторонние диапазоны»?

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

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

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

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

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

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

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

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

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