Rust

高度なトレイト

associated type と generic、GATs、trait object、dyn キーワード、object safety、vtable

22 面接問題·
Senior
1

trait における associated type と generic パラメータの主な違いは何ですか?

回答

associated type は型ごとに trait の実装を 1 つだけ許可しますが、generic パラメータは複数の実装を許可します。associated type では型が実装そのものによって決まるため、型推論が単純になり、使用するたびに型を指定する必要がなくなります。

2

Rust で trait object を作成するにはどのキーワードを使いますか?

回答

Rust で trait object を作成するには dyn キーワードを使います。これはメソッドのディスパッチが実行時に vtable を介して動的に行われることを示し、コンパイル時に解決される generic の静的ディスパッチとは対照的です。

3

trait object の文脈における vtable とは何ですか?

回答

vtable(virtual table)は、具体的な型に対する trait のメソッド実装へのポインタのテーブルです。trait object の動的ディスパッチに使われ、コンパイル時に具体的な型を知らなくても実行時に正しいメソッドを呼び出せるようにします。

4

trait が object-safe であるためには、どのような条件を満たす必要がありますか?

5

なぜ Clone trait は object-safe ではないのですか?

+19 面接問題

次の面接に向けてRustをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める