Ξενάγηση στη Rust Πίνακας Περιεχομένων

Πολυμορφισμός με traits

Η Rust υποστηρίζει τον πολυμορφισμό με τα traits. Τα traits μάς επιτρέπουν να συσχετίσουμε μία σειρά μεθόδων με έναν τύπο δομής.

Πρώτα ορίζουμε τις υπογραφές των μεθόδων ενός trait:

trait MyTrait {
    fn foo(&self);
    ...
}

Όταν μία δομή υλοποιεί ένα trait, καθιερώνεται ένα συμβόλαιο που μάς επιτρέπει ν' αλληλεπιδρούμε έμμεσα με τη δομή μέσω του τύπου trait (π.χ. &dyn MyTrait), χωρίς να χρειάζεται να γνωρίζουμε τον πραγματικό τύπο.

Οι μέθοδοι ενός trait που υλοποιούνται από μία δομή ορίζονται μέσα σε ένα μπλοκ υλοποίησης:

impl MyTrait for MyStruct {
    fn foo(&self) {
        ...
    }
    ...
}