Shadowing
- Rust kursu
- Başlangıç
- Ders 11/115
- 4 dk
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}"); // 5Uygulama 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
fn main() {
// buraya yaz
}Örnek çözüm
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
let ad = " Ada ";
____ ad = ad.trim();
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ı |