Rust

Trait avanzati

Associated type vs generic, GATs, trait object, parola chiave dyn, object safety, vtable

22 domande da colloquio·
Senior
1

Qual è la differenza principale tra un associated type e un parametro generic in un trait?

Risposta

Un associated type consente una sola implementazione del trait per tipo, mentre un parametro generic ne consente diverse. Con un associated type il tipo è determinato dall'implementazione stessa, il che semplifica l'inferenza di tipo ed evita di specificare il tipo a ogni utilizzo.

2

Quale parola chiave si usa per creare un trait object in Rust?

Risposta

La parola chiave dyn si usa per creare un trait object in Rust. Indica che il dispatch dei metodi avverrà dinamicamente a runtime tramite una vtable, a differenza del dispatch statico dei generic che viene risolto a tempo di compilazione.

3

Che cos'è una vtable nel contesto dei trait object?

Risposta

Una vtable (virtual table) è una tabella di puntatori alle implementazioni dei metodi del trait per un tipo concreto. Viene usata per il dispatch dinamico dei trait object, permettendo di chiamare il metodo corretto a runtime senza conoscere il tipo concreto a tempo di compilazione.

4

Quale condizione deve soddisfare un trait per essere object-safe?

5

Perché il trait Clone non è object-safe?

+19 domande da colloquio

Padroneggia Rust per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis