Може ли обект да се използва като ключ в колекция 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:.
Следователно, обектите могат да се използват като ключове, ако правилно реализират хеширането и сравнението.