Назад к вопросам
Junior
76
questionbank
Что такое дженерики в программировании?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Дженерики (Generics) — это способ писать гибкий, многократно используемый код, который работает с любыми типами данных, сохраняя при этом типовую безопасность. Они позволяют отложить указание конкретного типа до момента использования.
Основные преимущества:
- Избегание дублирования кода: Можно написать один алгоритм/структуру данных, работающую с разными типами.
- Типовая безопасность: Компилятор проверяет соответствие типов во время компиляции, предотвращая ошибки времени выполнения, связанные с неправильными типами.
- Более выразительный код: Яснее показывает намерения разработчика касательно типов данных.
Пример использования в Swift:
Обобщенная структура Stack:
struct Stack<Element> {
// дженерик Element используется как тип элементов массива
private var items: [Element] = []
// дженерик Element используется как тип параметра
mutating func push(_ item: Element) {
items.append(item)
}
// дженерик Element используется как тип возвращаемого значения
mutating func pop() -> Element {
return items.removeLast()
}
}
Использование со строками:
var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString имеет тип String
Использование с числами:
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt имеет тип Int
Без дженериков пришлось бы писать отдельные структуры для Stack<String>, Stack<Int> и т.д., либо использовать менее безопасные подходы (например, Any).