Döngü İçinde Ödünç Alma
Coddy'nin Rust Journey'sinin Fundamentals bölümünün bir parçası — ders 67 / 75.
Rust'ta bir döngü yazdığımızda, verilerimizle çalışmak için iki ana yolumuz vardır: ona bakabiliriz (& kullanarak) veya onu alabiliriz. Örneğin şu verileri ele alalım:
let numbers = vec![1, 2, 3, 4, 5];
let mut sum = 0;Yöntem 1: Veriye bakmak (& kullanarak):
for number in &numbers {
sum += number;
}
println!("I can use it here: {:?}", numbers);Yöntem 2: Veriyi alma (& olmadan):
for number in numbers {
sum += number;
}
// println!("Can't use {:?} anymore!", numbers);
// Bu bir hataya neden olurŞöyle düşünün:
&kullanmak bir fotoğraf albümüne bakmak gibidir: tüm fotoğrafları görebilirsiniz ancak albüm bozulmadan kalır
&kullanmamak, fotoğrafları çıkarmak gibidir: onları kullanabilirsiniz, ancak sonrasında albüm boş kalacaktır
Şimdi bu stil:
for num in numbers.iter() {}Şuna benzer:
for num in &numbers {}Ve bir mutasyon döngüsü:
for num in numbers.iter_mut() {
*num *= 2;
}Şu şekilde de yazılabilir:
for num in &mut numbers {
*num *= 2;
}Kopya kağıdı
Rust döngülerinde, verilere bakabilir (& kullanarak) veya onların sahipliğini alabilirsiniz:
Verilere bakmak (ödünç alma):
let numbers = vec![1, 2, 3, 4, 5];
for number in &numbers {
sum += number;
}
// numbers döngüden sonra hala kullanılabilirSahipliği almak:
let numbers = vec![1, 2, 3, 4, 5];
for number in numbers {
sum += number;
}
// numbers döngüden sonra kullanılamazYineleyici (Iterator) metotları:
// Bunlar eşdeğerdir:
for num in numbers.iter() {}
for num in &numbers {}
// Değişiklik (mutation) için:
for num in numbers.iter_mut() { *num *= 2; }
for num in &mut numbers { *num *= 2; }Kendin dene
Bu ders bir kod alıştırması içermiyor.
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