Menu
Coddy logo textTech

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 olur

Bunu şu şekilde düşünebilirsiniz:

  1. & kullanmak, bir fotoğraf albümüne bakmak gibidir: tüm fotoğrafları görebilirsiniz ancak albüm bozulmadan kalır
  2. & 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.

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

Kendi başına pratik yap: Online Rust derleyicisi