Dispatch Dinamico Contro Statico
I metodi vengono eseguiti in due modi:
- dispatch statico - Quando il tipo dell'istanza è noto, sappiamo direttamente quale funzione chiamare.
- dispatch dinamico - Quando il tipo di un'istanza non è noto, dobbiamo trovare un modo per chiamare la funzione giusta.
I tipi trait come &dyn MyTrait ci danno la possibilità di lavorare indirettamente con istanze di oggetti usando il dispatch dinamico.
Quando si usa il dispatch dinamico, Rust ti incoraggia a mettere dyn prima del tuo tipo trait, così che sia chiaro anche agli altri.
Dettagli sulla memoria:
- Il dispatch dinamico è leggermente più lento, a causa dell'inseguimento di puntatori necessario per trovare la chiamata di funzione reale.