CodeBlanks Logo Icon CodeBlanks

Shadowing

Değişken gölgeleme (shadowing) ile aynı ismi yeniden kullanırsın.

Shadowing

Aynı adla yeni bir let yazmak önceki değişkeni gölgeler (shadowing). Bu, mut'tan farklıdır: yeni bir değişken oluşur ve türü bile değişebilir:

let girdi = "42";          // &str
let girdi: i32 = girdi.parse().unwrap();  // i32
let girdi = girdi * 2;      // 84
println!("{girdi}");

Dönüşüm adımlarında girdi_str, girdi_sayi gibi yeni adlar uydurmadan aynı adı kullanmayı sağlar.

Kapsam ve gölgeleme

İç bir blokta yapılan gölgeleme yalnızca o blokta geçerlidir; blok bitince dıştaki değer geri gelir:

let x = 5;
{
    let x = x * 2;
    println!("iç: {x}");   // 10
}
println!("dış: {x}");      // 5

Uygulama Gölgeleme zinciri

let deger = " 21 "; ile başla. Önce let deger = deger.trim();, sonra let deger: i32 = deger.parse().unwrap();, en son let deger = deger * 2; yaz ve sonucu yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn main() {
    let deger = " 21 ";
    let deger = deger.trim();
    let deger: i32 = deger.parse().unwrap();
    let deger = deger * 2;
    println!("{}", deger);
}

Beklenen çıktı

42

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Shadowing ile <code>mut</code> arasındaki temel fark nedir?

  • Shadowing yalnızca sabitlerde çalışır
  • Shadowing yeni değişken oluşturur ve türü değiştirebilir Doğru cevap
  • mut türü değiştirebilir
  • Aynı şeydir

Açıklama: mut aynı değişkenin değerini değiştirir; let ile gölgelemek yepyeni bir bağlama oluşturur, eski değer erişilemez olur.

2 Gölgele

Soru
let ad = "  Ada  ";
____ ad = ad.trim();
Cevap
let ad = "  Ada  ";
let ad = ad.trim();

Açıklama: Yeniden let yazmak aynı adla yeni bir değişken oluşturur.

3 Kod ve sonuç

Kavram Anlamı
let x = 5; let x = x + 1; x = 6 (yeni değişken)
let x = "1"; let x: i32 = ... Tür değişti
İç bloktaki let x Yalnızca blokta
mut x = "a" (x i32) Derleme hatası

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma