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