Erken dönüş
- Rust kursu
- Başlangıç
- Ders 34/115
- 4 dk
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
fn main() {
// buraya yaz
}Örnek çözüm
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
if b == 0 {
____ None;
}
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ı |