Встречается на 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
Похожие вопросы
- Что такое модификатор памяти weak27%
- Расскажи про capture list27%
- Какие есть два типа инициализаторов27%
- Расскажи об MVVM27%
- В чем разница между MVC и MVVM27%
- Как устроено наследование в Swift27%
- Расскажи о самом главное различие между UI vue и CL vue27%
- Какой тип коллекций в Swift'е: value или reference27%
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
