Sobes.tech
Junior — Middle

Vai objektu var izmantot kā atslēgu kolekcijā Dictionary vai līdzīgā datu struktūrā?

sobes.tech AI

Atbilde no AI

iOS (Swift vai Objective-C) var izmantot objektus kā atslēgas vārdnīcās (Dictionary), bet objekts ir jāatbilst noteiktiem prasībām.

Swift, vārdnīcas atslēgām jāatbilst Hashable protokolam, tas ir, objekts jābūt pareizi īstenotām hash un vienlīdzības salīdzināšanas metodēm. Tas ir nepieciešams, lai vārdnīca efektīvi varētu glabāt un meklēt vērtības pēc atslēgām.

Piemērs, kā izmantot savu objektu kā atslēgu:

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

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

Ja objekts neīsteno Hashable, to nevar izmantot kā atslēgu. Objective-C, vārdnīcas atslēgām jābūt objektiem, kas īsteno -hash un -isEqual: metodes.

Tādējādi, objekti var tikt izmantoti kā atslēgas, ja tie pareizi īsteno hash un salīdzināšanu.