RUSTのイテレーターFoldメソッドの使い方

Rustのイテレータには、非常に強力なメソッドがいくつかあります。その中で fold メソッドは、イテレータの各要素を畳み込んで単一の値を生成するためのメソッドです。

fold メソッドは、初期値とクロージャ(または関数)を引数として取ります。初期値は畳み込み操作の初期状態を定義し、クロージャ(または関数)は畳み込み操作を実行するロジックを指定します。このクロージャは畳み込み操作によって生成される中間結果とイテレータの各要素を受け取り、新しい中間結果を返します。最終的に、イテレータのすべての要素が畳み込まれ、最終結果が得られます。

Iterator.fold(初期値, |前回のデータ,要素の値|計算式)
fn main() {
    let numbers = vec![1, 2, 3, 4, 5];

    let sum = numbers.iter().fold(0, |acc, x| acc + x);

    println!("Sum: {}", sum); // Output: Sum: 15
}

この例では、numbers ベクタの各要素を fold メソッドを使って畳み込んでいます。初期値は 0 で、クロージャ |acc, x| acc + x は畳み込みのロジックを表しています。このクロージャは、各要素を現在の総計 acc に加えて新しい総計を返します。最終的に、イテレータの要素がすべて畳み込まれ、最終結果として 15 が得られます。

コメントを残す