Bloklar ve Kapsamlar
Rust dilindeki bir blok, {}
parantezleri içine alınmış bir ifadeler dizisi (sequence of expressions) içerir. Her bloğun bir değeri ve bir türü vardır, bunlar, bloğun son ifadesinin değer ve türüdür:
fn main() { let z = 13; let x = { let y = 10; dbg!(y); z - y }; dbg!(x); // dbg!(y); }
Son ifade ;
ile bitiyorsa, ortaya çıkan değer ve tür ()
olur.
Bir değişkenin kapsamı (scope) onu çevreleyen blokla (enclosing block) sınırlıdır.
-
“dbg!”’nin, hızlı ve basitçe hata ayıklama için verilen bir ifadenin değerini yazdırmaya ve geri döndürmeye yarayan bir Rust makrosu olduğunu açıklayabilirsiniz.
-
Bloktaki son satırı değiştirerek bloğun değerinin nasıl değiştiğini gösterebilirsiniz. Örneğin, noktalı virgül eklemek/kaldırmak veya bir
return
kullanmak. -
y
değişkenine kapsamı (scope) dışından erişmeye çalışmanın derleme hatası olacağını gösterin. -
Değerler, yığındaki (stack) verileri hala orada olsa bile, kapsamlarının (scope) dışına çıktıklarında etkili bir şekilde “tahsisleri geri verilir (deallocated)”.