Junior — Middle
Da li je moguće koristiti objekat kao ključ u kolekciji Dictionary ili sličnoj strukturi podataka?
sobes.tech АИ
Одговор од АИ
У 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:.
Стога, објекти могу бити коришћени као кључеви ако правилно имплементирају хеширање и поређење.