Rust

Generics

Generic な関数、struct、enum、trait bounds、where clause、monomorphization

20 面接問題·
Mid-Level
1

Rust で generic な関数を宣言する正しい構文はどれですか?

回答

Rust では、generic な type parameter は関数名のあとの angle brackets で宣言します。構文 fn name<T>(param: T) は、T が使用時に決定される type parameter であることを示します。その後コンパイラは、関数を呼び出す際に使われる具体的な型ごとに特化したコードを生成します。

2

型 T のフィールドを持つ generic な struct はどのように宣言しますか?

回答

generic な struct は、struct 名のあとの angle brackets に type parameter を置いて宣言します。構文 struct Name<T> { field: T } により、さまざまな型で再利用可能な構造体を作成できます。型 T はその後、この struct に関連するフィールドやメソッドで使用できます。

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をマスター

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

無料で始める