Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ διεπαφών και γενικών τύπων στον προγραμματισμό;

sobes.tech AI

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

Οι διεπαφές και οι γενικοί τύποι επιτελούν διαφορετικές εργασίες στον προγραμματισμό:

  • Οι διεπαφές περιγράφουν ένα σύνολο μεθόδων που πρέπει να υλοποιεί ένας τύπος. Επιτρέπουν την εργασία με διαφορετικούς τύπους μέσω μιας κοινής σύμβασης, διασφαλίζοντας τον πολυμορφισμό. Για παράδειγμα, η διεπαφή Reader στο Go ορίζει τη μέθοδο Read(), και οποιοσδήποτε τύπος υλοποιεί αυτή τη μέθοδο μπορεί να χρησιμοποιηθεί ως Reader.

  • Οι γενικοί τύποι επιτρέπουν τη συγγραφή συναρτήσεων και δομών που λειτουργούν με διαφορετικούς τύπους δεδομένων, διατηρώντας την ασφάλεια τύπων. Είναι προτύπα παραμετροποιημένα με τύπους, που μεταγλωττίζονται για συγκεκριμένους τύπους κατά τη χρήση.

Παράδειγμα στο Go:

// Διεπαφή
 type Reader interface {
     Read(p []byte) (n int, err error)
 }

// Γενική συνάρτηση
 func PrintSlice[T any](s []T) {
     for _, v := range s {
         fmt.Println(v)
     }
 }

Έτσι, οι διεπαφές ορίζουν τη συμπεριφορά, και οι γενικοί τύποι προσφέρουν καθολικότητα στον κώδικα για διαφορετικούς τύπους.