Sobes.tech
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"

На овај начин, објекти морају бити неизменљиви у пољима која учествују у израчунавању хеша и поређењу, како би кључеви остали стабилни у речнику.