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

Какие условия должны быть выполнены для того, чтобы объект можно было использовать в качестве ключа в словаре?

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

sobes.tech AI

В iOS (и в целом в Swift) для использования объекта в качестве ключа в словаре (Dictionary) он должен удовлетворять протоколу Hashable. Это значит, что объект должен:

  • Иметь стабильный и уникальный хэш-код, который не меняется во время жизни объекта.
  • Реализовывать метод hash(into:), который добавляет компоненты объекта в хэш-функцию.
  • Реализовывать оператор равенства ==, чтобы словарь мог сравнивать ключи.

Пример:

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

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

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