Встречается на 27% собеседований по Mobile

что такое дженерики

Дженерики (generics) — это мощная особенность многих современных языков программирования, которые позволяют создавать гибкие, повторно используемые функции и типы данных, работающие с любым типом. Улучшают читаемость и безопасность типов кода, позволяя избежать дублирования кода и создавать более абстрактные, обобщённые решения.

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

  • Повторное использование кода: Благодаря дженерикам, можно написать код, который будет работать с любым типом данных, что уменьшает необходимость в написании однотипного кода для разных типов.
  • Типобезопасность: Дженерики позволяют создавать код, который может работать с любым типом, при этом сохраняя строгую проверку типов на этапе компиляции. Это уменьшает вероятность ошибок во время выполнения.
  • Гибкость: Дженерики делают код более адаптируемым и легко расширяемым для работы с новыми типами, не требуя изменений в существующем коде.
  • Функции

    text
    ```swift
    func swapTwoValues<T>(_ a: inout T, _ b: inout T) {
        let temporaryA = a
        a = b
        b = temporaryA
    }
    
    var int1 = 1
    var int2 = 2
    swapTwoValues(&int1, &int2) // int1 становится 2, int2 становится 1
    
    var string1 = "Hello"
    var string2 = "World"
    swapTwoValues(&string1, &string2) // string1 становится "World", string2 становится "Hello"
    ```

    Дженерик типы

    Могут хранить элементы любого типа.

    text
    ```swift
    var numbers: Array<Int> = [1, 2, 3]
    var strings: Dictionary<String, String> = ["Key": "Value"]
    ```

    Дженерик протоколы

    Также можно использовать с протоколами с помощью ассоциированных типов.

    text
    ```swift
    protocol Container {
        associatedtype Item
        mutating func append(_ item: Item)
        var count: Int { get }
        subscript(i: Int) -> Item { get }
    }
    ```

    Дженерики являются ключевой особенностью Swift, позволяя создавать гибкий и мощный код, способный работать с различными типами данных без потери безопасности типов.

    April 10, 2024, easyoffer

    как отвечать на вопрос
    пример собеседования
    фреймворки на собеседовании
    типичные вопросы junior
    интервью вопросы и ответы