Срезы массивов. Часть 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]): массив для создания срезаstart(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Повторение: истина или ложь2Переменные
Let и VarАннотации типовЧислаСтрокаЛогический типСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор разделения счёта
Приветственное сообщениеВвод данных14Массивы: продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опциональные значения
Что такое опциональные значенияИзвлечение значения с помощью if letGuard letОператор объединения с nilПовторение — безопасное извлечение значения6Принятие решений
Условный оператор ifIf — ElseПовторение: простой калькуляторОператор switchSwitch с диапазонами9Циклы
Цикл for-inЦикл whileЦикл repeat-whileПрерывание циклаПереход к следующей итерацииПовторение — факториалДиапазоны в циклахВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Swift