Sobes.tech
Junior — Middle

Hashable protokolünü uygulayan bir nesnenin, onu karma tablolarında kullanabilmek için hangi özelliklere sahip olması gerekir?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS'ta (Swift) Hashable protokolünü uygulayan bir nesne aşağıdaki özelliklere sahip olmalıdır:

  1. Hashable protokolüne uygunluk — nesne, hash(into:) metodunu uygulamalı ve bu metod, hash fonksiyonuna tüm önemli özellikleri eklemelidir.

  2. Eşdeğerlik (Equatable)== operatörü aracılığıyla eşit kabul edilen nesnelerin aynı hash'e sahip olması gerekir.

Bu, nesnenin Set gibi hash tablolarında veya Dictionary anahtarı olarak kullanılabilmesi için gereklidir; burada hash, öğenin konumunu belirler ve eşitlik, benzersizliği sağlar.

Uygulama örneği:

struct User: Hashable {
    var id: Int
    var name: String

    func hash(into hasher: inout Hasher) {
        hasher.combine(id)
    }

    static func == (lhs: User, rhs: User) -> Bool {
        return lhs.id == rhs.id
    }
}

Burada id, hash ve eşitliği belirleyen benzersiz bir tanımlayıcıdır.