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.

This slide should take about 5 minutes.
  • “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)”.