TGViewer
Мобильный трудоголик Мобильный трудоголик @hardworkerit · 1.65K subscribers
Post #69 730
🔢 Дженерики в Swift: мощный инструмент для гибкого кода.

Generics — это механизм, который позволяет писать универсальные функции и типы, работающие с любыми типами данных, сохраняя при этом полную типобезопасность.

🤔 Зачем нужны дженерики?

🔹 Уменьшают дублирование кода:
Больше не нужно писать отдельные функции для Int, Float и других типов — один обобщённый вариант заменит их все.

🔹 Обеспечивают типобезопасность:
Компилятор проверяет типы на этапе компиляции, предотвращая ошибки в рантайме.

🔹 Повышают переиспользуемость:
Один алгоритм можно применять к разным типам данных без изменений.

⚠️ Как работают дженерики?

Дженерики используют параметры типа (обычно обозначаются <T>, <Element> и т. д.), которые заменяются конкретными типами при компиляции.

♣️ Пример использования:

func plusValue<T: Numeric>(first: T, second: T) -> T {
return first + second
}

let a = 5
let b = 10
print(plusValue(first: a, second: b)) // 15

let c = 0.5
let d = 3.0
print(plusValue(first: c, second: d)) // 3.0

//

struct Stack<Element> {
private var elements = [Element]()

mutating func push(_ element: Element) {
elements.append(element)
}

mutating func pop() -> Element? {
return elements.popLast()
}
}

var intStack = Stack<Int>()
intStack.push(1)

var stringStack = Stack<String>()
stringStack.push("Swift")


❌ Ограничения дженериков:

Иногда нужно указать, что тип T должен соответствовать определённым требованиям. Для этого используют протоколы:


func plusValue<T: Numeric>(first: T, second: T) -> T {
return first + second
}


Здесь T должен являться числом (Numeric), иначе код не скомпилируется.

➡️ Подписаться на канал
Мобильный трудоголик
  • 👍 22
  • ❤ 13
  • 🔥 5
More from @hardworkerit
  1. Oct 10, 2026🔢 Переиспользуемые превью в SwiftUI. SwiftUI-превью часто начинаются с простого кода. Но…
  2. Oct 9, 2026👨‍💻 Умение адаптироваться - важный навык айтишника, который часто недооценивают. В ИТ не…
  3. Oct 8, 2026🈸 Apple обяжет разработчиков поддерживать iPhone Duo. Apple опубликовала требования к при…
  4. Oct 6, 2026🔢 Swift 6.4: новая диагностика ретейн циклов. В Swift 6.4 появилась новая диагностика, ко…
  5. Oct 4, 2026🔢 SwiftUI: определение угла раскрытия iPhone Duo. В iOS 27.1 появился модификатор .onHing…
  6. Oct 2, 2026👣 Архитекторы, тестировщики и кодеры. Создаем мультиагентную команду Разработка с ИИ-аген…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →