Tour di Rust Indice dei Contenuti

Polimorfismo con tratti

Rust supporta il polimorfismo con i tratti. I tratti ci permettono di associare un insieme di metodi con un tipo struct.

Per prima cosa definiamo le firme dei metodi di un tratto all'interno di:

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

Quando una struttura implementa un tratto, stabilisce un contratto che ce lo consente per interagire indirettamente con la struttura attraverso il tipo di tratto (ad esempio &dyn MyTrait) senza dover conoscere il reale tipo.

I metodi dei tratti implementati di una struttura sono definiti all'interno di un'implementazione bloccare:

impl MiaCaratteristica per MiaStruttura {
    fn foo(&self) {
        ...
    }
    ...
}