
Generics
Generic な関数、struct、enum、trait bounds、where clause、monomorphization
20 面接問題·
Mid-Level
1Rust で generic な関数を宣言する正しい構文はどれですか?
1
Rust で generic な関数を宣言する正しい構文はどれですか?
回答
Rust では、generic な type parameter は関数名のあとの angle brackets で宣言します。構文 fn name<T>(param: T) は、T が使用時に決定される type parameter であることを示します。その後コンパイラは、関数を呼び出す際に使われる具体的な型ごとに特化したコードを生成します。
2型 T のフィールドを持つ generic な struct はどのように宣言しますか?
2
型 T のフィールドを持つ generic な struct はどのように宣言しますか?
回答
generic な struct は、struct 名のあとの angle brackets に type parameter を置いて宣言します。構文 struct Name<T> { field: T } により、さまざまな型で再利用可能な構造体を作成できます。型 T はその後、この struct に関連するフィールドやメソッドで使用できます。
3Rust における monomorphization とは何ですか?
3
Rust における monomorphization とは何ですか?
回答
monomorphization とは、Rust コンパイラが generic とともに使われる具体的な型ごとに特化したマシンコードを生成するプロセスです。たとえば、generic な関数が i32 と String で呼び出されると、コンパイラはその関数の異なる 2 つのバージョンを作成します。これにより、実行時のオーバーヘッドなしに最適なパフォーマンスが保証されます。
4
generic パラメータ T に trait bound を追加するにはどうすればよいですか?
5
impl<T> Struct<T> と impl Struct<i32> の構文の違いは何ですか?
+17 面接問題
その他のRust面接トピック
Rustの基礎
Junior
25問Ownership & Borrowing
Junior
22問Structs & Enums
Junior
20問エラー処理
Junior
18問コレクション
Junior
20問モジュールとパッケージ
Junior
18問Traits
Mid-Level
22問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問高度なトレイト
Senior
22問高度な 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問