Sobes.tech
Назад к вопросам
Junior — Middle
67

Можно ли применять объект как ключ в коллекции Dictionary или аналогичной структуре данных?

Компании, где спрашивали
OkkoOkko

Ответ от нейросети

sobes.tech 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:.

Таким образом, можно использовать объекты как ключи, если они корректно реализуют хеширование и сравнение.