Menu
Coddy logo textTech

ベクタの反復処理

CoddyのRustジャーニー「論理とフロー」セクションの一部。レッスン 11/66。

ベクターの作成方法と個々の要素へのアクセス方法がわかったところで、ベクター内のすべての要素を体系的に処理する方法を学びましょう。このタスクにはforループが最適で、各要素を順番に処理できます。

ベクターを反復処理する基本的な構文は次のとおりです。

let names = vec!["Alice", "Bob", "Charlie"];

for name in &names {
    println!("Hello, {}!", name);
}

&names の前にあることに注目してください。これはベクターへの参照を作成し、ベクター自体の所有権を取得せずに各要素を読み取れるようにします。各反復では、ループ変数 name を通じて、一度に 1 つの要素にアクセスできます。

forループは、境界チェックを自動的に処理してくれます。手動でインデックスを指定する方法とは異なり、存在しない要素に誤ってアクセスしようとすることはありません。ループはベクターに含まれる要素をちょうどすべて訪れるため、安全で便利です。

このパターンは、どの型のベクターにも使用できます。

let scores = vec![85, 92, 78, 90];

for score in &scores {
    println!("Score: {}", score);
}

このアプローチは、ベクター内のすべての要素の値を読み取る必要がある場合に、それらを処理する最も一般的で慣用的な方法です。

challenge icon

チャレンジ

簡単
sum_all_elements 関数を記述してください。この関数はベクトル numbers を受け取り、そのすべての要素の合計を返します。

for ループを使用してベクトルを反復処理し、すべての要素の合計を累積してください。

パラメーター:

  • numbers (Vec<i32>): 合計する整数のベクトル

戻り値: ベクトル内のすべての要素の合計 (i32)

自分で試してみよう

fn sum_all_elements(numbers: Vec<i32>) -> i32 {
    // ここにコードを書いてください
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン

自分で練習してみよう: Rustオンラインコンパイラ