Junior — Middle
Koji uslovi i karakteristike objekti moraju imati da bi se mogli koristiti kao ključevi u rečniku?
sobes.tech АИ
Одговор од АИ
Да би објекат мога да се користи као кључ у речнику (на пример, у NSDictionary или Swift Dictionary), он мора испуњавати следеће услове:
- Хешабилност: објекат мора имати правилно реализовану методу за израчунавање хеша (
hashу Swift-у,hashValueилиhash(into:)), како би речник могао брзо да пронађе кључ. - Поређење по једнакости: објекат мора исправно реализовати методу поређења по једнакости (
isEqualу Objective-C,Equatableу Swift-у), како би речник могао разликовати различите кључеве.
На пример, у Swift-у, да бисте користили лични тип као кључ, потребно је да имплементирате протоколе Hashable и Equatable:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
На овај начин, објекти морају бити неизменљиви у пољима која учествују у израчунавању хеша и поређењу, како би кључеви остали стабилни у речнику.