Menu
Coddy logo textTech

Gelişmiş For Döngüsü

Coddy'nin Rust Journey'sinin Fundamentals bölümünün bir parçası — ders 66 / 75.

Bir dizi üzerinde döngü kurmanın farklı yolları vardır, işte bunlardan bazıları:

Aşağıdaki diziyi ele alalım:

let numbers = [1, 2, 3, 4, 5];
  • Doğrudan Yineleyici:

    for num in numbers.iter() {}
    // Değerler: 1, 2, 3, 4, 5
  • İndeks & Değer:

    for (index, value) in numbers.iter().enumerate() { }
    // Değerler: (0,1), (1,2), (2,3), (3,4), (4,5)
  • Belirli boyuttaki dilimler:

    for chunk in numbers.chunks(2) { }
    // Değerler: [1,2], [3,4], [5]
  • Değiştirerek yineleme:

    for num in numbers.iter_mut() { 
    	*num *= 2;
    }
    // Dizi şu hale gelir: [2, 4, 6, 8, 10]
challenge icon

Görev

Kolay

Öğeler ve fiyatlarını içeren bir alışveriş listesini işleyen ve verilerin farklı görünümlerini sağlayan bir program oluşturun.

Program şunları yapmalıdır:

  1. Her bir öğe numarasını ve fiyatını yazdırın (enumerate kullanarak)
  2. Fiyatları "bundle deals" olarak çiftler halinde yazdırın (chunks kullanarak)
  3. Tüm fiyatlara %10 indirim uygulayın (iter_mut kullanarak)
  4. Nihai indirimli fiyatları yazdırın

Kopya kağıdı

Rust'ta diziler üzerinde yineleme yapmanın farklı yolları:

Doğrudan Yineleyici (Direct Iterator):

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

enumerate ile İndeks ve Değer:

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

chunks ile belirli boyuttaki dilimler:

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

iter_mut kullanarak mutasyon ile yineleme:

for num in numbers.iter_mut() { 
    *num *= 2;
}
// Array becomes: [2, 4, 6, 8, 10]

Kendin dene

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

    println!("Original Prices:");
    // TODO: Her bir öğe numarasını ve fiyatını yazdırmak için enumerate kullanın
    // Beklenen: "Item 1: $2.99" vb.


    println!("\nBundle Deals:");
    // TODO: Fiyat çiftlerini ve toplamlarını yazdırmak için chunks kullanın
    // Beklenen: "Bundle 1: $2.99 + $1.50 = $4.49" vb.


    // TODO: Tüm fiyatlara %10 indirim uygulamak için iter_mut kullanın


    println!("\nPrices after 10% discount:");
    // TODO: İndirimden sonraki nihai fiyatları yazdırın
    // Beklenen: "$2.69" vb.

}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Fundamentals bölümündeki tüm dersler