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]
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:
- Her bir öğe numarasını ve fiyatını yazdırın (enumerate kullanarak)
- Fiyatları "bundle deals" olarak çiftler halinde yazdırın (chunks kullanarak)
- Tüm fiyatlara %10 indirim uygulayın (iter_mut kullanarak)
- 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, 5enumerate 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.
}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
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Temel Girdi-Çıktı
Konsola YazdırmaKullanıcı Girdisi OkumaÖzet - 120'ye KadarÖzet - Doğru veya Yanlış5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 311Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriBirden Fazla Dönüş DeğeriÖzet - Sigma FonksiyonuÖzet - Doğrulama Fonksiyonu14Diziler Üzerinde Gezinme
Range RehberiGelişmiş For DöngüsüDöngü İçinde Ödünç AlmaYaygın Dizi İşlemleri3Değişkenler Bölüm 2
Tür Bildirimiİsimlendirme KurallarıTür ÇıkarımıÖzet - Değişkenleri BaşlatmaTür Dönüştürme9Döngüler
Seriler Üzerinde ForWhile DöngüsüBreakContinueİç İçe DöngülerDöngü EtiketleriSonsuz DöngüÖzet - Dinamik Girdi