Rust

Fortgeschrittene Traits

Associated Types vs. Generics, GATs, Trait Objects, dyn-Schlüsselwort, Object Safety, vtables

22 Interview-Fragen·
Senior
1

Was ist der Hauptunterschied zwischen einem Associated Type und einem generischen Parameter in einem Trait?

Antwort

Ein Associated Type erlaubt nur eine Trait-Implementierung pro Typ, während ein generischer Parameter mehrere Implementierungen erlaubt. Bei einem Associated Type wird der Typ durch die Implementierung selbst bestimmt, was die Typinferenz vereinfacht und das Angeben des Typs bei jeder Verwendung erspart.

2

Welches Schlüsselwort wird verwendet, um in Rust ein Trait Object zu erstellen?

Antwort

Das Schlüsselwort dyn wird verwendet, um in Rust ein Trait Object zu erstellen. Es zeigt an, dass das Method-Dispatch dynamisch zur Laufzeit über eine vtable erfolgt, im Gegensatz zum statischen Dispatch bei Generics, das zur Kompilierzeit aufgelöst wird.

3

Was ist eine vtable im Kontext von Trait Objects?

Antwort

Eine vtable (virtual table) ist eine Tabelle von Zeigern auf die Trait-Methodenimplementierungen für einen konkreten Typ. Sie wird für das dynamische Dispatch von Trait Objects verwendet und ermöglicht es, zur Laufzeit die richtige Methode aufzurufen, ohne den konkreten Typ zur Kompilierzeit zu kennen.

4

Welche Bedingung muss ein Trait erfüllen, um object-safe zu sein?

5

Warum ist der Clone-Trait nicht object-safe?

+19 Interview-Fragen

Meistere Rust für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten