Односторонние диапазоны
Задавайте диапазоны без явно указанной границы для получения срезов.
«Односторонние диапазоны» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Замкнутые и полуоткрытые диапазоны
- Односторонние диапазоны
- Подсчёт с помощью stride(from:to:by:)
- Диапазоны как коллекции