Срезы массивов. Часть 1
Часть раздела Основы путешествия по Swift на Coddy. Урок 73 из 86.
Иногда вам нужен не весь массив, а только его часть. Swift упрощает извлечение подмножества элементов с помощью среза массива и операторов диапазона.
Чтобы получить срез, используйте диапазон внутри скобок индекса. Наиболее распространённый подход использует оператор полуоткрытого диапазона (..<), который включает начальный индекс, но исключает конечный индекс:
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice) // [20, 30, 40]Здесь 1..<4 даёт нам элементы с индексами 1, 2 и 3, но не с индексом 4. Это полезно, когда вы точно знаете, где хотите остановиться.
Если нужно включить конечный индекс, используй оператор замкнутого диапазона (...):
let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice) // ["b", "c", "d"]Важная деталь: результат среза — это ArraySlice, а не обычный Array. Если вам нужен настоящий массив, оберните его в Array():
let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced) // [1, 2, 3]Задание
ЛегкоНапиши функцию getMiddleElements, которая принимает numbers, start и end и возвращает срез массива от начального индекса до конечного индекса, не включая его.
Используй оператор полуоткрытого диапазона (..<), чтобы извлечь указанную часть массива и вернуть её как обычный массив.
Параметры:
numbers([Int]): массив для выполнения slicestart(Int): начальный индекс (включительно)end(Int]): конечный индекс (исключительно)
Возвращает: массив, содержащий элементы от начального индекса до конечного индекса, не включая его ([Int])
Пример: если numbers равен [10, 20, 30, 40, 50, 60], start равен 1, а end равен 4, функция должна вернуть [20, 30, 40].
Попробуйте сами
func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический вводПотренируйтесь самостоятельно: Песочница Swift