Sobes.tech
Junior — Middle

Bir programlama dilinde jenerikler kullanarak protokol uygulanabilir mi?

sobes.tech yapay zeka

AI'dan gelen yanıt

Swift'te, jenerikler protokollerle birlikte kullanılabilir, ancak protokoller kendileri jenerik değildir. Bunun yerine, ilişkili türler (associated types) içeren protokoller oluşturulabilir; bu, genel gereksinimleri tanımlamaya olanak tanır. Bu, esnek ve tür güvenli arayüzlerin uygulanmasını sağlar.

İlişkili tür içeren bir protokol örneği:

protocol Container {
    associatedtype Item
    func append(_ item: Item)
    var count: Int { get }
    subscript(i: Int) -> Item { get }
}

struct IntStack: Container {
    var items = [Int]()
    mutating func append(_ item: Int) {
        items.append(item)
    }
    var count: Int {
        return items.count
    }
    subscript(i: Int) -> Int {
        return items[i]
    }
}

Bu şekilde, ilişkili türlere sahip protokoller, jenerik arayüzleri uygulamanın bir yoludur, tıpkı jenerikler gibi.