Junior
Hangi programlama ilkesi jenerikleri kullanmaya izin verir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Alt türlerin alt tipolojisi.
Swift'teki jenerikler, parametreli çok biçimlilik (polimorfizm) uygular, böylece kodu, önceden bilmeksizin farklı türlerle çalışacak şekilde yazmaya izin verir, ancak bu türlerin belirli kısıtlamalara (örneğin, protokollere) uymasını gerektirir.
Jeneriklerin kullanım örneği:
// Aynı tür T'yi alan ve T'nin Equatable protokolüne uyması gereken iki parametre alan jenerik bir fonksiyon tanımı.
func areEqual<T: Equatable>(_ a: T, _ b: T) -> Bool {
return a == b
}
// Int ile jenerik fonksiyonun kullanımı
let intResult = areEqual(5, 5) // true
// String ile jenerik fonksiyonun kullanımı
let stringResult = areEqual("hello", "world") // false
Jenerik yapı örneği (yığın):
// Herhangi bir tür T'nin öğelerini depolayabilen jenerik "Stack" yapısının tanımı.
struct Stack<T> {
private var elements: [T] = []
mutating func push(_ element: T) {
elements.append(element)
}
mutating func pop() -> T? {
return elements.popLast()
}
}
// Int ile jenerik yapının kullanımı
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let poppedInt = intStack.pop() // 2
// String ile jenerik yapının kullanımı
var stringStack = Stack<String>()
stringStack.push("A")
stringStack.push("B")
let poppedString = stringStack.pop() // "B"
Jeneriklerin kullanmanın avantajları:
- Tür güvenliği: Derleyici, derleme sırasında türleri kontrol eder, böylece çalışma zamanında hataların olasılığını azaltır.
- Kod tekrar kullanılabilirliği: Aynı kod, farklı türlerle çalışabilir.
- Performans: Çalışma zamanında tür dönüşümüne gerek yoktur.
- Soyutlama: Belirli veri türlerinden soyutlanmayı sağlar.