Junior
Programlamada jenerikler nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Genel (Generics), herhangi bir veri tipiyle çalışan ve tip güvenliğini koruyan esnek ve yeniden kullanılabilir kod yazma yöntemidir. Belirli bir tipi kullanma zamanını ertelemeye olanak tanır.
Ana avantajlar:
- Kod tekrarını önleme: Farklı tiplerle çalışan bir algoritma/veri yapısı yazılabilir.
- Tip güvenliği: Derleyici, derleme sırasında tip uyumluluğunu kontrol eder ve yanlış tiplerle ilgili çalışma zamanı hatalarını önler.
- Daha ifadeli kod: Geliştiricinin veri tipleriyle ilgili niyetlerini daha net gösterir.
Swift'te kullanım örneği:
Genel Stack yapısı:
struct Stack<Element> {
// Element, dizinin elemanları olarak kullanılır
private var items: [Element] = []
// Parametre olarak Element kullanılır
mutating func push(_ item: Element) {
items.append(item)
}
// Dönen değer olarak Element kullanılır
mutating func pop() -> Element {
return items.removeLast()
}
}
Stringlerle kullanım:
var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString String tipindedir
Sayısal değerlerle kullanım:
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt Int tipindedir
Genel tipler olmadan, Stack<String>, Stack<Int> gibi ayrı yapılar yazmak veya daha az güvenli yaklaşımlar kullanmak gerekirdi (örneğin, Any).