Menu
Coddy logo textTech

Срезы массивов. Часть 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].

Шпаргалка

Swift предоставляет сокращенный синтаксис для создания срезов массивов от начала или до конца, оставляя одну сторону диапазона пустой.

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

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

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

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

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

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

Односторонние диапазоны возвращают ArraySlice. Оберните результат в Array(), чтобы преобразовать его в обычный массив:

let regularArray = Array(numbers[2...])

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

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

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

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