Menu
CoddyTech

Метод enumerate

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

Иногда при переборе массива нужно знать не только элемент, но и его позицию. Вы могли бы вручную отслеживать индекс с помощью переменной-счётчика, но Swift предлагает более простое решение: метод enumerated().

При вызове enumerated() для массива возвращается последовательность кортежей, где каждый кортеж содержит индекс и элемент:

let colors = ["Red", "Green", "Blue"]

for (index, color) in colors.enumerated() {
    print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue

Обратите внимание, как мы напрямую разбираем каждый кортеж в цикле с помощью (index, color). Так мы получаем доступ к обоим значениям без дополнительного кода.

Это особенно полезно, когда нужно отображать нумерованные списки или выполнять операции, зависящие от позиции элемента:

let tasks = ["Wake up", "Exercise", "Eat breakfast"]

for (index, task) in tasks.enumerated() {
    print("Task \(index + 1): \(task)")
}
// Задача 1: Проснуться
// Задача 2: Сделать зарядку
// Задача 3: Позавтракать

Метод enumerated() помогает сделать код чище и понятнее по сравнению с ручным ведением отдельной переменной-счётчика.

challenge icon

Задание

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

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

Логика:

  1. Перебери массив с помощью enumerated()
  2. Для каждого элемента создай строку в формате "position. item" (используя нумерацию, начинающуюся с 1)
  3. Объедини все отформатированные строки символом новой строки (\n)

Параметры:

  • items ([String]): массив строк для форматирования

Возвращает: Одну строку, в которой каждый элемент находится на отдельной строке и перед ним указан номер его позиции (String). Формат: "1. item1\n2. item2\n3. item3"

Пример: Если items равно ["Apple", "Banana", "Cherry"], функция должна вернуть:

"1. Apple\n2. Banana\n3. Cherry"

Примечание: если массив пуст, верни пустую строку "".

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

func formatWithPositions(items: [String]) -> String {
    // Напишите код здесь
}
quiz iconПроверьте себя

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

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

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