CodeBlanks Logo Icon CodeBlanks

Dönüş değeri

-> 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

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

Örnek çözüm

main.rs
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() -&gt; 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ü

Soru
fn ortalama(a: f64, b: f64) ____ f64 {
    (a + b) / 2.0
}
Cevap
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üş

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