С какими типами коллекций в Swift вы работали?

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

Ответ

В Swift основными нативными типами коллекций являются:

  1. Array ([Element]) — упорядоченная коллекция элементов одного типа.

    var numbers: [Int] = [1, 2, 3]
    numbers.append(4) // [1, 2, 3, 4]
    let doubled = numbers.map { $0 * 2 } // [2, 4, 6, 8]
  2. Set (Set<Element>) — неупорядоченная коллекция уникальных элементов одного типа. Реализован на основе хэш-таблицы.

    var uniqueTags: Set<String> = ["iOS", "Swift", "Xcode"]
    uniqueTags.insert("UIKit") // Может добавиться в любом месте
    if uniqueTags.contains("Swift") { /* true */ }
  3. Dictionary ([Key: Value]) — неупорядоченная коллекция пар «ключ-значение», где ключи уникальны.

    var userScores: [String: Int] = ["Alice": 120, "Bob": 95]
    userScores["Charlie"] = 150 // Добавление
    let aliceScore = userScores["Alice"] // 120 (опциональный Int?)

Ключевые аспекты работы:

  • Value vs Reference Types: Все стандартные коллекции Swift — value types (копируются при присваивании).
  • Мутабельность: Определяется ключевым словом var (изменяемая) или let (неизменяемая).
  • Итерация: Через цикл for-in или методы forEach.
  • Методы высшего порядка: Активно использовал map, filter, reduce, compactMap для трансформации данных.
  • Фонд Objective-C: При необходимости работал с NSArray, NSSet, NSDictionary для совместимости с Objective-C API.