Sobes.tech
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 (hash Swift'te, hashValue veya hash(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 (isEqual Objective-C'de, Equatable Swift'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.