Junior — Middle
Ar galima naudoti objektą kaip raktą kolekcijoje Dictionary ar panašioje duomenų struktūroje?
sobes.tech AI
Atsakymas iš AI
iOS (Swift arba Objective-C) galima naudoti objektus kaip raktus žodynuose (Dictionary), tačiau objektas turi atitikti tam tikrus reikalavimus.
Swift, žodyno raktai turi būti suderinami su Hashable protokolu, tai reiškia, kad objektas turi turėti teisingai įgyvendintus heshavimo ir lyginimo metodus. Tai būtina, kad žodynas galėtų efektyviai saugoti ir ieškoti reikšmes pagal raktus.
Pavyzdys, kaip naudoti savo objektą kaip raktą:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Jei objektas neįgyvendina Hashable, jo negalima naudoti kaip rakto. Objective-C, žodyno raktai turi būti objektai, kurie įgyvendina -hash ir -isEqual: metodus.
Todėl, objektai gali būti naudojami kaip raktai, jei jie teisingai įgyvendina heshavimą ir palyginimą.