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 her değerin bir sahibi (owner) vardır ve bir döngü içinde bir değeri kullandığınızda, Rust onu ödünç almak (borrow - sadece geçici olarak bakmak) mı yoksa sahipliğini devralmak (take ownership - onu tüketmek) mı istediğinizi bilmeye ihtiyaç duyar.
Bu önemlidir çünkü eğer bir döngü verinizin sahipliğini alırsa, döngü bittikten sonra o veriyi artık kullanamazsınız. Bu ayrımı anlamak, Rust'ta döngüleri doğru şekilde yazmanın anahtarıdır.
Örneğin, aşağıdaki verileri ele alalım:
let numbers = vec![1, 2, 3, 4, 5];
let mut sum = 0;Yöntem 1: Veriye bakma (& 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 olurBunu şu şekilde düşünebilirsiniz:
&kullanmak, bir fotoğraf albümüne bakmak gibidir: tüm fotoğrafları görebilirsiniz ancak albüm bozulmadan kalır&kullanmamak, fotoğrafları dışarı çıkarmak gibidir: onları kullanabilirsiniz ancak albüm sonrasında 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;
}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