Sobes.tech
Junior — Middle

Може ли обект да се използва като ключ в колекция Dictionary или подобна структура от данни?

sobes.tech AI

Отговор от AI

В iOS (Swift или Objective-C) можете да използвате обекти като ключове в речници (Dictionary), но обектът трябва да отговаря на определени изисквания.

В Swift ключовете на речника трябва да съответстват на протокола Hashable, тоест обектът трябва да има правилно реализирани методи за хеширане и сравнение за равенство. Това е необходимо, за да може речникът ефективно да съхранява и търси стойности по ключове.

Пример за използване на потребителски обект като ключ:

struct Person: Hashable {
    let id: Int
    let name: String
}

var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"

Ако обектът не реализира Hashable, не може да бъде използван като ключ. В Objective-C ключовете на речника трябва да бъдат обекти, които реализират методите -hash и -isEqual:.

Следователно, обектите могат да се използват като ключове, ако правилно реализират хеширането и сравнението.