İçeriğe geç

Hashable kullanımı

Merhabalar bu yazımda Swift 4.2 ile birlikte daha güvenli ve basit hale gelen hash üretme işlemini nasıl yapabileceğinize örnek vereceğim.

Hash işlemi türkçe olarak Özetleme fonksiyonu olarak adlandırılır. Bu işlem programlamanın çoğu alanında kullanılmaktadır.

Özetleme fonksiyonlarının çalışma şekli, uzun bir girdiyi alarak daha kısa bir alanda göstermektir. Amaç girende bir değişiklik olduğunda bunun çıkışa da yansımasıdır. Buna göre özetleme fonksiyonları veri güvenliğinde, verinin farklı olup olmadığını kontrol etmeye yarar ya da verileri sınıflandırmak için kullanılır. Bu tür algoritmalar sorgulama işlemlerinde büyük hız avantajı sağlayabilmektedir.

Swift ile basit, güvenli bir hash işlemi için Hashable protokolünden yararlanmaktayız. Dilin yeni versiyonunda bu işlemde yenilenmiş ve kullanımı anlaşılır hale getirilmiş.

Aşağıda yazdığım örneği inceleyebilir ve kullanımı görebilirsiniz.

class Country: Hashable {
    let name: String
    let capital: String
    
    init(name: String, capital: String) {
        self.name = name
        self.capital = capital
    }
    
    static func ==(lhs: Country, rhs: Country) -> Bool {
        return lhs.name == rhs.name && lhs.capital == rhs.capital
    }
    
    func hash(into hasher: inout Hasher) {
        hasher.combine(name)
        hasher.combine(capital)
    }
}

let cc = Country(name: "Turkey", capital: "Ankara")
cc.hashValue //

Hasher fonksiyonu yardımıyla farklı Hashable protokolune bağlı sınıfları kombin edip hash değeri üretebiliriz.

let cc = Country(name: "Turkey", capital: "Ankara")
let dd = Country(name: "Germany", capital: "Berlin")

var hasher = Hasher()
hasher.combine(cc)
hasher.combine(dd)
hasher.finalize()

 

 

 

 

 

Kategori:SwiftSwift 4

Bu yazı yorumlara kapalı.

Copyright © 2022 Kenan Atmaca