Junior — Middle
Πώς υλοποιείται η χρήση προσαρμοσμένων αντικειμένων ως κλειδιά κατά την εργασία με λεξικά;
sobes.tech AI
Απάντηση από AI
Για να χρησιμοποιήσετε προσαρμοσμένα αντικείμενα ως κλειδιά σε λεξικά (π.χ., στο Swift Dictionary), αυτά τα αντικείμενα πρέπει να συμμορφώνονται με τα πρωτόκολλα Hashable και Equatable.
Αυτό σημαίνει ότι η κλάση ή η δομή πρέπει να υλοποιεί μεθόδους για τον υπολογισμό της τιμής κατακερματισμού και τον έλεγχο ισότητας αντικειμένων.
Παράδειγμα σε Swift:
struct User: Hashable {
let id: Int
let name: String
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func == (lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id
}
}
var dict: [User: String] = [:]
let user1 = User(id: 1, name: "Alice")
dict[user1] = "Admin"
Σε αυτό το παράδειγμα, το κλειδί του λεξικού είναι ένα αντικείμενο User, το οποίο ταυτοποιείται μοναδικά με το id. Η υλοποίηση των hash(into:) και == επιτρέπει την σωστή αποθήκευση και αναζήτηση αντικειμένων στο λεξικό.