İfade ve deyim
- Rust kursu
- Başlangıç
- Ders 33/115
- 4 dk
İfade (expression) ve deyim (statement) farkını öğrenirsin.
İfade ve deyim
Rust'ta deyim (statement) bir iş yapar ama değer üretmez (let x = 5;); ifade (expression) bir değer üretir (5 + 1, kare(3), if ..., { ... }). İfadenin sonuna noktalı virgül koymak onu deyime çevirir.
let y = {
let x = 3;
x + 1 // bloğun değeri: 4
};
println!("{y}");Bu yüzden let x = (let y = 6); geçersizdir: let bir değer üretmez.
match de bir ifadedir
Bir değeri sınıflandırıp sonucu doğrudan bir değişkene atamak için match ifadesi kullanılır:
let puan = 72;
let harf = match puan {
90..=100 => 'A',
70..=89 => 'B',
50..=69 => 'C',
_ => 'F',
};
println!("{harf}"); // BTüm kollar aynı türü döndürmelidir; derleyici aksi hâlde hata verir.
Uygulama Harf notu
fn harf(puan: u32) -> char fonksiyonunu bir match ifadesiyle yaz: 90–100 'A', 70–89 'B', 50–69 'C', diğerleri 'F'. harf(95), harf(72) ve harf(30) sonuçlarını tek satırda yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn harf(puan: u32) -> char {
match puan {
90..=100 => 'A',
70..=89 => 'B',
50..=69 => 'C',
_ => 'F',
}
}
fn main() {
println!("{} {} {}", harf(95), harf(72), harf(30));
}Beklenen çıktı
A B F
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aşağıdakilerden hangisi bir ifadedir?
- fn f() {}
- use std::io;
- { let a = 2; a * a } Doğru cevap
- let a = 2;
Açıklama: Blok son ifadesinin değerini üretir (4); diğerleri değer üretmeyen bildirim ve deyimlerdir.
2 İfade olarak if
let durum = ____ yas >= 18 { "yetişkin" } else { "çocuk" };
let durum = if yas >= 18 { "yetişkin" } else { "çocuk" };
Açıklama: if bir ifadedir; seçilen kolun değeri doğrudan değişkene atanır.
3 Kod ve tür
| Kavram | Anlamı |
|---|---|
let x = 5; |
Deyim |
5 + 1 |
İfade |
{ x + 1 } |
Değer üreten blok |
x + 1; |
Değeri atılan deyim |