Menu
CoddyTech

Срезы массивов. Часть 2

Часть раздела Основы путешествия по Swift на Coddy. Урок 74 из 86.

Swift предоставляет удобный сокращённый синтаксис для среза массива от начала или до конца. Вместо того чтобы явно указывать 0 или последний индекс, можно оставить одну сторону диапазона пустой.

Чтобы получить срез массива от начала до определённого индекса, пропустите начальное значение:

let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3]
print(firstThree)  // [10, 20, 30]

Аналогично, чтобы получить срез от определённого индекса до конца, пропусти конечное значение:

let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...]
print(fromIndex2)  // [30, 40, 50]

Также можно использовать вариант с закрытым диапазоном, чтобы включить определённый конечный индекс:

let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3]
print(upToIndex3)  // ["a", "b", "c", "d"]

Эти диапазоны с одной границей делают код чище, когда тебе нужны первые несколько элементов или всё после определённой позиции. Не забудь обернуть результат в Array(), если тебе нужен обычный массив вместо ArraySlice.

challenge icon

Задание

Легко
Напиши функцию splitArray, которая принимает numbers и index и возвращает все элементы от заданного индекса до конца массива.

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

Параметры:

  • numbers ([Int]): Массив, из которого нужно получить срез
  • index (Int): Начальный индекс (включительно)

Возвращает: Массив, содержащий все элементы от заданного индекса до конца массива ([Int])

Пример: Если numbers — это [5, 10, 15, 20, 25, 30], а index — это 3, функция должна вернуть [20, 25, 30].

Попробуйте сами

func splitArray(numbers: [Int], index: Int) -> [Int] {
    // Напишите код здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Swift