Sobes.tech
Junior — Middle

Μπορεί να χρησιμοποιηθεί μια πολύπλοκη δομή δεδομένων ως κλειδί σε ένα λεξικό;

sobes.tech AI

Απάντηση από AI

Στις λεξικογραφίες (Dictionary) στο iOS (Swift), τα κλειδιά μπορούν να είναι μόνο τύποι που συμμορφώνονται με το πρωτόκολλο Hashable. Αυτό σημαίνει ότι μια πολύπλοκη δομή δεδομένων μπορεί να είναι κλειδί αν υλοποιεί το hashing και τη σύγκριση για ισότητα.

Για παράδειγμα, αν έχετε μια δομή:

struct Point: Hashable {
    let x: Int
    let y: Int
}

μπορείτε να χρησιμοποιήσετε το Point ως κλειδί σε ένα λεξικό:

var dict: [Point: String] = [:]
dict[Point(x: 1, y: 2)] = "Σημείο A"

Αν η δομή δεν συμμορφώνεται με το Hashable, δεν μπορεί να χρησιμοποιηθεί ως κλειδί. Σε αυτή την περίπτωση, πρέπει είτε να προσθέσετε τη συμμόρφωση στο πρωτόκολλο είτε να χρησιμοποιήσετε άλλο τύπο κλειδιού.