Menu
Coddy logo textTech

拡張 for ループ

CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 66/75。

配列を反復処理する方法はいくつかあります。以下にその一部を紹介します:

以下の配列を考えてみましょう:

let numbers = [1, 2, 3, 4, 5];
  • 直接イテレータ:

    for num in numbers.iter() {}
    // 値: 1, 2, 3, 4, 5
  • インデックスと値:

    for (index, value) in numbers.iter().enumerate() { }
    // 値: (0,1), (1,2), (2,3), (3,4), (4,5)
  • 特定のサイズのスライス:

    for chunk in numbers.chunks(2) { }
    // 値: [1,2], [3,4], [5]
  • ミューテーションを伴う反復処理:

    for num in numbers.iter_mut() { 
    	*num *= 2;
    }
    // 配列は次のようになります: [2, 4, 6, 8, 10]
challenge icon

チャレンジ

簡単

アイテムとその価格が含まれるショッピングリストを処理し、データのさまざまなビューを提供するプログラムを作成してください。

プログラムは以下を行う必要があります:

  1. 各アイテムの番号と価格を印刷する(enumerate を使用)
  2. 価格をペアで(chunks を使用)"bundle deals" として印刷する
  3. すべての価格に10%の割引を適用する(iter_mut を使用)
  4. 最終的な割引後の価格を印刷する

チートシート

Rustで配列を反復処理するさまざまな方法:

直接イテレータ:

for num in numbers.iter() {}
// 値: 1, 2, 3, 4, 5

enumerateを使用したインデックスと値:

for (index, value) in numbers.iter().enumerate() { }
// 値: (0,1), (1,2), (2,3), (3,4), (4,5)

chunksを使用した特定のサイズのスライス:

for chunk in numbers.chunks(2) { }
// 値: [1,2], [3,4], [5]

iter_mutを使用したミューテーションを伴う反復処理:

for num in numbers.iter_mut() { 
    *num *= 2;
}
// 配列の状態: [2, 4, 6, 8, 10]

自分で試してみよう

fn main() {
    let mut prices = [2.75, 1.50, 5.00, 3.5, 4.1, 2.25, 7.9];

    println!("Original Prices:");
    // TODO: enumerate を使用して、各アイテムの番号と価格を表示してください
    // 期待される出力: "Item 1: $2.99" など


    println!("\nBundle Deals:");
    // TODO: chunks を使用して、価格のペアとその合計を表示してください
    // 期待される出力: "Bundle 1: $2.99 + $1.50 = $4.49" など


    // TODO: iter_mut を使用して、すべての価格に10%の割引を適用してください


    println!("\nPrices after 10% discount:");
    // TODO: 割引後の最終的な価格を表示してください
    // 期待される出力: "$2.69" など

}
quiz icon腕試し

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

Fundamentalsのすべてのレッスン