Dönüş değeri
- Rust kursu
- Başlangıç
- Ders 32/115
- 4 dk
-> okuyla dönüş değerinin türünü belirtmeyi öğrenirsin.
Dönüş değeri
Dönüş türü -> ile yazılır. Gövdenin son ifadesi (noktalı virgülsüz) dönüş değeridir; return yazmaya gerek yoktur:
fn kare(n: i32) -> i32 {
n * n // noktalı virgül yok → değer döner
}
fn mutlak(n: i32) -> i32 {
if n < 0 { -n } else { n }
}Son satıra yanlışlıkla ; koymak onu deyime çevirir ve fonksiyon () döndürür; derleyici "mismatched types" hatası verir.
if bir ifadedir
Rust'ta if, match ve bloklar değer üretir; bu yüzden üçlü operatöre (?:) gerek yoktur:
let yas = 20;
let durum = if yas >= 18 { "yetişkin" } else { "çocuk" };
let kdvli = {
let fiyat = 100.0;
fiyat * 1.2
};
println!("{durum} {kdvli}");if-else kollarının türü aynı olmalıdır.
Uygulama Mutlak değer
fn mutlak(n: i32) -> i32 fonksiyonunu if ifadesiyle ve return yazmadan yaz. mutlak(-7) ve mutlak(4) sonuçlarını tek satırda yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn mutlak(n: i32) -> i32 {
if n < 0 { -n } else { n }
}
fn main() {
println!("{} {}", mutlak(-7), mutlak(4));
}Beklenen çıktı
7 4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>fn f() -> i32 { 5; }</code> neden derlenmez?
- 5 i32 değildir
- return eksik ve zorunlu
- Derlenir
- 5; bir deyimdir; fonksiyon () döndürür ama i32 bekleniyor Doğru cevap
Açıklama: Noktalı virgül ifadeyi deyime çevirir ve değerini atar; yalnızca 5 yazılırsa (ya da return 5;) derlenir.
2 Dönüş türü
fn ortalama(a: f64, b: f64) ____ f64 {
(a + b) / 2.0
}
fn ortalama(a: f64, b: f64) -> f64 {
(a + b) / 2.0
}
Açıklama: -> fonksiyonun dönüş türünü belirtir.
3 Gövde ve dönüş
| Kavram | Anlamı |
|---|---|
{ n * n } |
n * n döner |
{ n * n; } |
() döner |
if a { 1 } else { 2 } |
İfade |
return x; |
Açık dönüş |