Dynamische Versus Statische Dispatch
Methoden worden op twee manieren uitgevoerd:
- statische dispatch - Wanneer het type van de instantie bekend is, weten we direct welke functie moet worden aangeroepen.
- dynamische dispatch - Wanneer het type van een instantie niet bekend is, moeten we een manier vinden om de juiste functie aan te roepen.
Trait-types zoals &dyn MyTrait geven ons de mogelijkheid om indirect met instanties van objecten te werken met behulp van dynamische dispatch.
Wanneer dynamische dispatch wordt gebruikt, moedigt Rust u aan om dyn voor uw trait-type te zetten, zodat anderen zich daarvan bewust zijn.
Geheugendetails:
- Dynamische dispatch is iets langzamer, vanwege het volgen van pointers dat nodig is om de daadwerkelijke functieaanroep te vinden.