Junior — Middle
Μπορεί μια συλλογή Set να περιέχει στοιχεία οποιουδήποτε τύπου δεδομένων ή υπάρχουν περιορισμοί στον τύπο;
sobes.tech AI
Απάντηση από AI
Στο Swift, η συλλογή Set μπορεί να περιέχει στοιχεία οποιουδήποτε τύπου που συμμορφώνεται με το πρωτόκολλο Hashable. Αυτό σημαίνει ότι οι τύποι πρέπει να μπορούν να υπολογίζουν έναν κωδικό κατακερματισμού (hash code) για να διασφαλίζουν την μοναδικότητα των στοιχείων στο Set.
Παραδείγματα επιτρεπτών τύπων:
- Τυπικοί τύποι, όπως το Int, String, Double — ήδη συμμορφώνονται με το Hashable.
- Προσαρμοσμένες δομές ή κλάσεις, εάν υλοποιούν το πρωτόκολλο Hashable.
Παράδειγμα προσαρμοσμένης δομής κατάλληλης για το Set:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet: Set<Person> = []
peopleSet.insert(Person(id: 1, name: "Иван"))
Εάν ένας τύπος δεν συμμορφώνεται με το Hashable, δεν μπορεί να χρησιμοποιηθεί σε ένα Set.