Menu
Coddy logo textTech

Değiştirilebilir Yineleme

Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 12 / 66.

Bazen sadece vektör öğelerini okumaktan fazlasını yapmanız gerekir; onları değiştirmeniz gerekir. Önceki ders, değerler üzerinde nasıl yineleme yapılacağını ve değerlerin nasıl okunacağını gösterirken, bu ders mutable references (değiştirilebilir referanslar) kullanarak yineleme sırasında öğeleri nasıl değiştireceğinizi öğretir.

Yineleme yaparken öğeleri değiştirmek için, for döngünüzde & yerine &mut kullanmanız gerekir:

let mut numbers = vec![1, 2, 3, 4];

for number in &mut numbers {
    *number = *number * 2;
}

&mut numbers, vektöre değiştirilebilir bir referans oluşturur ve her yineleme size tek bir öğeye yönelik değiştirilebilir bir referans verir. * operatörü (dereference operatörü olarak adlandırılır), referansın işaret ettiği gerçek değere erişmek ve bu değeri değiştirmek için kullanılır.

Bu desen, verileri yerinde dönüştürmek için inanılmaz derecede kullanışlıdır. Değiştirilmiş değerlerle yeni bir vektör oluşturmak yerine, mevcut olanı verimli bir şekilde güncelleyebilirsiniz. İçeriğini değiştirdiğiniz için, bunun çalışması için vektörün mut olarak bildirilmesi gerekir.

Yukarıdaki döngüden sonra, numbers [2, 4, 6, 8] değerlerini içerecektir - her bir orijinal değer yerinde iki katına çıkarılmış olur.

challenge icon

Görev

Kolay

Değiştirilebilir (mutable) bir numbers vektörü alan ve her öğeye yerinde 10 ekleyen, ardından değiştirilmiş vektörü döndüren bir add_ten_to_all fonksiyonu yazın.

Her öğeyi doğrudan değiştirmek için &mut ile değiştirilebilir yineleme (mutable iteration) kullanın. Gerçek değerlere erişmek ve bunları değiştirmek için dereference operatörü * kullanmayı unutmayın.

Parametreler:

  • numbers (Vec<i32>): Değiştirilecek tam sayılardan oluşan değiştirilebilir bir vektör

Döndürdüğü Değer: Her öğesine 10 eklenmiş olan değiştirilmiş vektör (Vec<i32>)

Kopya kağıdı

Yineleme sırasında vektör öğelerini değiştirmek için &mut ile değiştirilebilir referanslar (mutable references) kullanın:

let mut numbers = vec![1, 2, 3, 4];

for number in &mut numbers {
    *number = *number * 2;
}

Önemli noktalar:

  • &mut numbers vektöre değiştirilebilir bir referans oluşturur
  • Her yineleme, tek bir öğeye değiştirilebilir bir referans sağlar
  • * operatörü (dereference operatörü) gerçek değere erişir ve onu değiştirir
  • Değişikliğe izin vermek için vektörün mut olarak bildirilmesi gerekir

Bu desen, yeni bir vektör oluşturmadan verileri yerinde verimli bir şekilde dönüştürmenize olanak tanır.

Kendin dene

fn add_ten_to_all(numbers: Vec<i32>) -> Vec<i32> {
    // Kodu buraya yazın
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler