Back to questions
VK
Junior — Middle
66
Каким образом реализовать использование пользовательских объектов в качестве ключей при работе с словарями?
Companies where asked
Answer from AI
sobes.tech AI
Чтобы использовать пользовательские объекты в качестве ключей в словарях (например, в Swift Dictionary), необходимо, чтобы эти объекты соответствовали протоколам Hashable и Equatable.
Это значит, что класс или структура должны реализовать методы для вычисления хэш-значения и проверки равенства объектов.
Пример на Swift:
struct User: Hashable {
let id: Int
let name: String
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func == (lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id
}
}
var dict: [User: String] = [:]
let user1 = User(id: 1, name: "Alice")
dict[user1] = "Admin"
В этом примере ключом словаря выступает объект User, уникально идентифицируемый по id. Реализация hash(into:) и == позволяет корректно хранить и искать объекты в словаре.