Dynamisches vs. Statisches Dispatch
Methoden werden auf zwei Arten ausgeführt:
- statisches Dispatch - Wenn der Instanztyp bekannt ist, wissen wir direkt, welche Funktion aufgerufen werden muss.
- dynamisches Dispatch - Wenn ein Instanztyp nicht bekannt ist, müssen wir einen Weg finden, die richtige Funktion aufzurufen.
Trait-Typen wie &dyn MyTrait geben uns die Möglichkeit, indirekt mit Instanzen von Objekten zu arbeiten, indem dynamisches Dispatch verwendet wird.
Wenn dynamisches Dispatch verwendet wird, ermutigt Rust Dich dazu, dyn vor Deinen Trait-Typ zu setzen, damit andere darauf aufmerksam werden.
Speicherdetails:
- Dynamisches Dispatch ist etwas langsamer, wegen der Zeigerverfolgung, die nötig ist, um den tatsächlichen Funktionsaufruf zu finden.