Как выполнить итерацию по коллекции в Swift?

«Как выполнить итерацию по коллекции в Swift?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в Swift можно итерироваться по коллекциям (массивам, словарям, множествам) несколькими способами.

Основные методы:

  1. Цикл for-in (универсальный):

    let numbers = [1, 2, 3]
    for number in numbers {
    print(number)
    }
  2. Методы высшего порядка (функциональный стиль):

    numbers.forEach { print($0) } // Проход по элементам
    let doubled = numbers.map { $0 * 2 } // Преобразование
    let even = numbers.filter { $0 % 2 == 0 } // Фильтрация
  3. Итерация по словарю:

    let dict = ["a": 1, "b": 2]
    for (key, value) in dict {
    print("(key): (value)")
    }

Важные особенности:

  • Порядок итерации в Dictionary и Set не гарантирован (используйте .sorted() для порядка)
  • Для безопасной модификации во время итерации используйте:
    for index in numbers.indices.reversed() {
    if numbers[index] == 2 {
        numbers.remove(at: index)
    }
    }
  • Метод enumerated() возвращает пары (индекс, элемент) для массивов