Menu
Coddy logo textTech

Değiştirilebilir Yineleme

Coddy'nin Rust Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 12 / 66.

Bazen vektör öğelerini yalnızca okumaktan daha fazlasını yapmanız gerekir; onları değiştirmeniz gerekir. Önceki derste değerleri yinelemeyi ve okumayı gösterdik, bu derste ise değiştirilebilir başvurular kullanarak yineleme sırasında öğeleri nasıl değiştireceğinizi öğreneceksiniz.

Yineleme sırasında öğeleri değiştirmek için for döngünüzde &mut yerine & 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 değiştirilebilir bir referans verir. (Dereference operatörü olarak adlandırılan) * operatö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 kalıp, verileri yerinde dönüştürmek için inanılmaz derecede kullanışlıdır. Değiştirilmiş değerlere sahip 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ı adına vektörün mut olarak bildirilmesi gerekir.

Yukarıdaki döngüden sonra numbers, her özgün değerin yerinde iki katına çıkarılmış hâli olan [2, 4, 6, 8] değerini içerirdi.

challenge icon

Görev

Kolay
Her bir elemana yerinde 10 ekleyen ve ardından değiştirilmiş vektörü döndüren, değiştirilebilir bir numbers vektörü alan add_ten_to_all adlı bir fonksiyon yazın.

Her bir elementi doğrudan değiştirmek için &mut ile değiştirilebilir yineleme kullanın. Gerçek değerlere erişmek ve onları değiştirmek için dereference operatörü * kullanmayı unutmayın.

Parametreler:

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

Döndürür: Her bir elementine 10 eklenmiş değiştirilmiş vektör (Vec<i32>)

Kendin dene

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

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

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Rust derleyicisi