Sobes.tech
Junior — Middle

Kādos nosacījumi un īpašības ir jāatbilst objektiem, lai tos varētu izmantot kā atslēgas vārdnīcā?

sobes.tech AI

Atbilde no AI

Lai objekts varētu tikt izmantots kā atslēga vārdnīcā (piemēram, NSDictionary vai Swift Dictionary), tas ir jāatbilst šādiem nosacījumiem:

  • Hashable: objekts jābūt pareizi īstenotai hash aprēķināšanas metodei (hash Swift, hashValue vai hash(into:)), lai vārdnīca varētu ātri atrast atslēgu.
  • Vienlīdzības salīdzinājums: objekts jāīsteno pareizi salīdzināšanas metodei (isEqual Objective-C, Equatable Swift), lai vārdnīca varētu atšķirt dažādas atslēgas.

Piemēram, Swift, lai izmantotu savu tipu kā atslēgu, ir jāīsteno protokoli Hashable un Equatable:

struct Person: Hashable {
    let id: Int
    let name: String
}

var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"

Tādējādi objektiem jābūt nemainīgiem tajās laukos, kas piedalās hash aprēķinā un salīdzināšanā, lai atslēgas paliktu stabilas vārdnīcā.