
高度なトレイト
associated type と generic、GATs、trait object、dyn キーワード、object safety、vtable
22 面接問題·
Senior
1trait における associated type と generic パラメータの主な違いは何ですか?
1
trait における associated type と generic パラメータの主な違いは何ですか?
回答
associated type は型ごとに trait の実装を 1 つだけ許可しますが、generic パラメータは複数の実装を許可します。associated type では型が実装そのものによって決まるため、型推論が単純になり、使用するたびに型を指定する必要がなくなります。
2Rust で trait object を作成するにはどのキーワードを使いますか?
2
Rust で trait object を作成するにはどのキーワードを使いますか?
回答
Rust で trait object を作成するには dyn キーワードを使います。これはメソッドのディスパッチが実行時に vtable を介して動的に行われることを示し、コンパイル時に解決される generic の静的ディスパッチとは対照的です。
3trait object の文脈における vtable とは何ですか?
3
trait object の文脈における vtable とは何ですか?
回答
vtable(virtual table)は、具体的な型に対する trait のメソッド実装へのポインタのテーブルです。trait object の動的ディスパッチに使われ、コンパイル時に具体的な型を知らなくても実行時に正しいメソッドを呼び出せるようにします。
4
trait が object-safe であるためには、どのような条件を満たす必要がありますか?
5
なぜ Clone trait は object-safe ではないのですか?
+19 面接問題
その他のRust面接トピック
Rustの基礎
Junior
25問Ownership & Borrowing
Junior
22問Structs & Enums
Junior
20問エラー処理
Junior
18問コレクション
Junior
20問モジュールとパッケージ
Junior
18問Traits
Mid-Level
22問Generics
Mid-Level
20問Lifetimes
Mid-Level
20問Iterators & Closures
Mid-Level
22問Smart Pointers
Mid-Level
22問Concurrency Basics
Mid-Level
20問async/await
Mid-Level
22問Testing
Mid-Level
18問Cargo & Ecosystem
Mid-Level
18問Pattern Matching
Mid-Level
18問マクロ
Mid-Level
20問Serde とシリアライゼーション
Mid-Level
20問Unsafe Rust
Senior
20問高度な lifetime
Senior
20問Type System
Senior
20問Tokio & Async I/O
Senior
22問パフォーマンス最適化
Senior
20問Memory Management
Senior
20問Web Frameworks
Senior
22問Database Integration
Senior
20問Rust デザインパターン
Senior
20問