CodeBlanks Logo Icon CodeBlanks

Erken dönüş

return anahtar kelimesiyle erken dönüş yapmayı öğrenirsin.

Erken dönüş

return fonksiyondan hemen çıkar. Genellikle özel ya da hatalı durumları başta ele alıp ana mantığı girintisiz bırakmak için kullanılır:

fn indirim(tutar: f64, uye: bool) -> f64 {
    if tutar <= 0.0 {
        return 0.0;
    }
    if !uye {
        return tutar;
    }
    tutar * 0.9
}

Son satırdaki dönüş değeri için return yazmamak Rust geleneğidir.

Option ile erken dönüş

Bir değer bulunamadığında None döndürmek de erken dönüşün yaygın kullanımıdır:

fn ilk_cift(sayilar: &[i32]) -> Option<i32> {
    for &n in sayilar {
        if n % 2 == 0 {
            return Some(n);
        }
    }
    None
}

println!("{:?}", ilk_cift(&[3, 7, 8, 10]));  // Some(8)

Option türünü ileride ayrıntılı göreceksin.

Uygulama İlk çift sayı

Yukarıdaki ilk_cift(sayilar: &[i32]) -> Option<i32> fonksiyonunu yaz. &[3, 7, 8, 10] ve &[1, 5] için sonuçları {:?} ile tek satırda yazdır.

Başlangıç kodu

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

Örnek çözüm

main.rs
fn ilk_cift(sayilar: &[i32]) -> Option<i32> {
    for &n in sayilar {
        if n % 2 == 0 {
            return Some(n);
        }
    }
    None
}

fn main() {
    println!("{:?} {:?}", ilk_cift(&[3, 7, 8, 10]), ilk_cift(&[1, 5]));
}

Beklenen çıktı

Some(8) None

Soru ve cevaplar

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

1 Erken dönüşün temel faydası nedir?

  • Bellek kazandırır
  • Özel durumlar başta ayrılır, ana akış iç içe girmez Doğru cevap
  • Kodu hızlandırır
  • Zorunludur

Açıklama: Koruma (guard) cümleleri okuyanın her koşulu ayrı ayrı görmesini sağlar ve derin if-else yığınlarını önler.

2 Hemen çık

Soru
if b == 0 {
    ____ None;
}
Cevap
if b == 0 {
    return None;
}

Açıklama: return fonksiyondan verilen değerle hemen çıkar.

3 Kod ve davranış

Kavram Anlamı
return 0.0; Hemen çıkar
tutar * 0.9 (son satır) Normal dönüş
return Some(n); Bulunca çıkar
None (son satır) Bulunamadı

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