Sobes.tech
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).