Junior
Jaký princip programování umožňuje používat generika?
sobes.tech AI
Odpověď od AI
Podtypová polymorfismus.
Generika v Swiftu implementují parametrický polymorfismus, který umožňuje psát kód, jenž může pracovat s různými typy bez jejich předchozí znalosti, ale vyžaduje, aby tyto typy splňovaly určité omezení (například protokoly).
Příklad použití generik:
// Definice generické funkce, která přijímá dva parametry stejného typu T,
// kde typ T musí splňovat protokol Equatable.
func areEqual<T: Equatable>(_ a: T, _ b: T) -> Bool {
return a == b
}
// Použití generické funkce s typem Int
let intResult = areEqual(5, 5) // true
// Použití generické funkce s typem String
let stringResult = areEqual("hello", "world") // false
Příklad generické struktury (zásobník):
// Definice generické struktury "Stack", která může uchovávat prvky libovolného typu T.
struct Stack<T> {
private var elements: [T] = []
mutating func push(_ element: T) {
elements.append(element)
}
mutating func pop() -> T? {
return elements.popLast()
}
}
// Použití generické struktury s typem Int
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let poppedInt = intStack.pop() // 2
// Použití generické struktury s typem String
var stringStack = Stack<String>()
stringStack.push("A")
stringStack.push("B")
let poppedString = stringStack.pop() // "B"
Výhody použití generik:
- Typová bezpečnost: Kompilátor kontroluje typy během kompilace, snižuje pravděpodobnost chyb za běhu.
- Opětovné použití kódu: Stejný kód může pracovat s různými typy.
- Výkon: Není potřeba přiřazování typu za běhu.
- Abstrakce: Umožňují abstrakci od konkrétních datových typů.