Sobes.tech
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.