Rust

Iterators & Closures

Iterator トレイト、iterator アダプタ(map、filter、fold)、closure 構文、move closures、Fn トレイト

22 面接問題·
Mid-Level
1

Rust の for ループで使用できるようにするには、型はどの trait を実装する必要がありますか?

回答

IntoIterator トレイトは、型をイテレータに変換できるようにします。for ループは式に対して自動的に into_iter() を呼び出します。Vec、配列、range などの型はデフォルトでこのトレイトを実装しているため、for で直接反復処理できます。

2

Iterator トレイトのどのメソッドを必ず実装する必要がありますか?

回答

next() メソッドは Iterator トレイトで唯一必須のメソッドです。Option<Self::Item> を返し、要素が残っていれば Some(item)、反復が完了すれば None を返します。map、filter、collect などの他のすべてのメソッドは next() に基づくデフォルト実装を持っています。

3

Vec<T> における iter()、iter_mut()、into_iter() の違いは何ですか?

回答

iter() は不変参照(&T)のイテレータを返し、iter_mut() は可変参照(&mut T)のイテレータを返し、into_iter() は Vec を消費して要素を値(T)で返します。どれを選ぶかは、要素を読むか、変更するか、所有権を取得するかによって決まります。

4

Rust における lazy なイテレータとは何で、なぜ重要なのですか?

5

2 つの i32 パラメータを受け取り、その合計を返す closure を定義する正しい構文はどれですか?

+19 面接問題

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

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

無料で始める