kitap Kesinlikle, döngü v1_iter sahipliğini aldı ve sahne arkasında o değişken yapılan
diyor ve bir daha basit bir örnek yapabilir:
let v = vec![1,2,3];
let mut x = v;
x.push(0);
Not o v
ve x
ayrı değişken bağlamalarıdır: v
değişkeni 3 elementli vektörünü koruduğu sürece, değişkenin kontratı vektörün mutasyona uğratılmayacağıydı. Bununla birlikte, vektör, mutabilitenin kabul edilebilir olduğunu beyan eden x
'a taşındı. Aynı fonksiyon aramalar için geçerlidir: değişkenler tek ömrü herhangi bir noktasında vektörü sahip çünkü
fn foo(mut x: Vec<i32>) {
x.push(0);
}
let v = vec![1,2,3];
foo(v);
Bu güvenlidir. v
, x
'a taşındığında, v
artık kullanılamaz. Aynı şekilde, kodunuzda v1_iter
artık döngüden sonra kullanılamaz.
Ancak değişmez bir değişkeni değiştirilebilen haline dönüştürebilir misiniz? değeri mut
olarak ilan yeni değişkene taşındığı için
Hem parçacıkları çalışır. Bununla birlikte, bir değişken değişmez (veya değişebilir) olarak ilan edildiğinde, bu değişken tüm ömrü boyunca kalır ve bu değiştirilemez. Yani cevap hayır, ancak sahiplik semantiği, değişkenleri farklı değişkenlik garantileri ile değişkenler arasında hareket ettirmeyi mümkün kılar.