Junior — Middle
Bir sözlükte anahtar olarak kullanılabilmeleri için nesnelerin hangi koşullara ve özelliklere sahip olması gerekir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir nesnenin sözlükte (örneğin, NSDictionary veya Swift Dictionary) anahtar olarak kullanılabilmesi için aşağıdaki koşulları sağlaması gerekir:
- Hashlenebilirlik: Nesnenin doğru şekilde uygulanmış bir hash hesaplama yöntemi (
hashSwift'te,hashValueveyahash(into:)) olmalıdır, böylece sözlük anahtarı hızlıca bulabilir. - Eşitlik karşılaştırması: Nesne, eşitlik karşılaştırma metodunu (
isEqualObjective-C'de,EquatableSwift'te) doğru şekilde uygulamalıdır, böylece sözlük farklı anahtarları ayırt edebilir.
Örneğin, Swift'te özel bir tipi anahtar olarak kullanmak için Hashable ve Equatable protokollerini uygulamak gerekir:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Bu şekilde, nesnelerin, hash hesaplaması ve karşılaştırmada kullanılan alanlarda değiştirilemez olması gerekir, böylece anahtarlar sözlükte kararlı kalır.