Junior — Middle
Как да реализираме използването на потребителски обекти като ключове при работа със словари?
sobes.tech AI
Отговор от 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:) и == позволява правилно съхраняване и търсене на обекти в речника.