Se poate folosi un obiect ca cheie într-o colecție Dictionary sau într-o structură de date similară?
sobes.tech AI
Răspuns de la AI
În iOS (Swift sau Objective-C), puteți utiliza obiecte ca chei în dicționare (Dictionary), dar obiectul trebuie să îndeplinească anumite cerințe.
În Swift, cheile dicționarului trebuie să respecte protocolul Hashable, adică obiectul trebuie să aibă metode de hash și comparare pentru egalitate implementate corect. Acest lucru este necesar pentru ca dicționarul să poată stoca și căuta eficient valori după chei.
Exemplu de utilizare a unui obiect personalizat ca cheie:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Dacă obiectul nu implementează Hashable, nu poate fi utilizat ca cheie. În Objective-C, cheile dicționarului trebuie să fie obiecte care implementează metodele -hash și -isEqual:.
Prin urmare, puteți utiliza obiecte ca chei dacă implementează corect hash-ul și comparația.