C veya JavaScript gibi birçok popüler programlama dilinde, değişkenler varsayılan olarak değiştirilebilir. Rust'ta dil yazarları değişkenlerin varsayılan olarak değiştirilemez olmasına yönelik önemli bir seçim yaptılar: bu karar, kod güvenliği ve değişkenlerin durumu ile ilgili beklenmedik değişikliklerle ilişkili hataların azaltılması ile ilgilidir.
Değiştirilebilir değişkenlerin ana problemi, değerlerin dışarıdan değişimlerine bağlı olarak hata ayıklama ve hata bulmanın zorluğudur. Özellikle, değişkenler programın farklı yerlerinde değiştiğinde ve değişimlerinin kontrolü kaybolduğunda, kodun davranışını anlamak zorlaşır. Bu, özellikle çoklu iş parçacıklı uygulamalar yazarken veya kodda karmaşık bağımlılıklar olduğunda hatalara ve beklenmedik sonuçlara yol açabilir.
Rust'ta değişkenler varsayılan olarak let anahtar kelimesi ile değiştirilemez. Bir değişkeni değiştirilebilir hale getirmek için açıkça mut belirtmek gerekir. Bu, kodun güvenilirliğini artırır, değişmezliği bilinçli bir seçim haline getirir ve rastgele değişikliklerin olasılığını azaltır.
Kod örneği:
let x = 5; // değiştirilemez değişken let mut y = 10; // değiştirilebilir değişken y += 1; // geçerli x += 1; // derleme hatası!
Temel özellikler:
mut ile).Yapı alanını değiştirmek, eğer yapı değişkeni değiştirilemez olarak ilan edildiyse mümkündür?
Hayır, eğer yapı değişkeni değiştirilemez olarak ilan edilmişse, alanları da değiştirilemez. Alanları değiştirmek için değişkeni mut ile ilan etmek gerekir.
Kod örneği:
struct Point { x: i32, y: i32 } let mut p = Point { x: 0, y: 0 }; p.x = 5; // tamam let p2 = Point { x: 1, y: 2 }; p2.x = 3; // derleme hatası!
Eğer değişken mut ise, ona aynı anda birden fazla değiştirilebilir referans ile başvurmak mümkün müdür?
Hayır, Rust'ta bir nesne üzerinde sadece bir tane değiştirilebilir referans bulunabilir. Bu kural, veri yarışını önler.
Değiştirilemez nesnelerden oluşan bir dizi, değiştirilebilir olarak ilan edilebilir ve içeriği değiştirilebilir mi?
Evet. Eğer dizi değişkeni mut olarak ilan edilirse, elemanları değiştirilebilir; ancak dizi elemanlarının türü değiştirilebilirliği desteklemiyorsa, elemanlar değiştirilemez.
mut kullanımı, kodu daha az güvenli hale getirir.mut ilan etmeden değiştirme girişimi.Projede, gereksiz yere değiştirilebilir olarak ilan edilen değişkenler bulunuyor. Bu, bir değişkenin bir yöntem içinde yanlışlıkla değiştirilmesine neden oluyor ve bu da prodüksiyondaki zor tespit edilebilen bir hataya yol açıyor.
Artılar:
Eksiler:
Takım projesinde, değişkenler varsayılan olarak değiştirilemez kabul ediliyor ve yalnızca gerçekten gerekli olduğunda değiştirilebilirlik kullanılıyor, her zaman nedeni açıklayan yorumlar ekleniyor.
Artılar:
Eksiler: