← Rust コース
31. map・filter・collect — 変換パイプライン
イテレータにはクロージャを受け取るメソッドが用意されています。map は各要素を変換し、filter は条件を満たす要素だけを残し、collect で結果を Vec などのコレクションに集めます。
「全要素を2倍にして、6以上だけ残す」のような処理を、ループと一時変数なしで .map(...).filter(...).collect() と一直線に書けます。データの加工が中心の実務コードでは、for ループよりこのスタイルが主流です。
collect の結果の型は文脈から決まらないことが多いため、let result: Vec<i32> = ... のように受け取る側に型を書くのが定番です。「collect で型エラーが出たら注釈を足す」と覚えてください。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
Rust